4

我们有一个带有 MySQL 数据库的基于 php 的站点。我们有大量的用户、订单、发票等数据。现在我们想使用 Django 和 MySQL 甚至 MongoDB 重新设计我们的站点应用程序。

对我们来说,将所有桌子完全按照以前的状态移动非常重要,而且不会造成任何损失。有没有办法做到这一点?我们可以在 Django 中定义新模型并将它们重定向到具有相同名称的现有数据表,然后导入以前的数据库吗?

如果真的有办法做到这一点,那是什么?如果有人知道实用的方法,我将不胜感激。

4

1 回答 1

3

哎呀!迁移是艰难的。

首先,备份您可以测试的数据库(这可能是给定的,但需要说明。)您实际上可以使用mysqldump直接转储到新的 MySQL 数据库

大部分可以帮助您入门的内容都在Django 的使用“遗留数据库”的文档中

粗略地说,使用您的数据库连接参数和数据库名称设置一个 Django 应用程序。您需要编辑DATABASES设置并为这些键分配值:

NAME
ENGINE
USER
PASSWORD
HOST
PORT

首先,有一个名为的内置实用程序inspectdb可以根据您的数据库生成模型。

python manage.py inspectdb

Keep in mind that this is only a first pass, and you'll likely have to fix some of it by hand. Once you get the output cleaned up, save it as models.py and add it to your INSTALLED_APPS setting. You'll also need to set managed=True in each of your model's internal class Meta.

After all this is done, run

python manage.py migrate

You will probably have to tweak this over and over to get it right. I highly recommend having backups and a good (maybe automated) setup to keep testing and tweaking to get it right.

于 2013-11-10T22:08:24.900 回答