我可以将完整的MySQL DB从基于PHP的站点移动到Django应用程序吗?

我们有一个基于PHP的站点与MySQL数据库.我们有很多用户,订单,发票等数据.现在我们想用Django和MySQL甚至MongoDB重新设计我们的网站应用程序.

对我们来说,完全按照以前的方式移动所有表格并且没有损失是非常重要的.有没有办法做到这一点?我们可以在Django中定义新模型并将它们重定向到具有相同名称的现有数据表,然后导入以前的数据库吗?

如果真的有办法做到这一点,它是什么?如果有人知道一种实用的方法我很感激.

解决方法:

哎呀!迁移很难.

首先,备份你可以测试的数据库(这可能是一个给定的,但需要说明.)你实际上可以使用mysqldump来转储straight to a new MySQL database.

最让你入门的是Django’s documentation for working with “legacy databases”.

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

NAME
ENGINE
USER
PASSWORD
HOST
PORT

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

python manage.py inspectdb

请记住,这只是第一次通过,您可能需要手动修复其中一些.清除输出后,将其另存为models.py并将其添加到INSTALLED_APPS设置中.您还需要在每个模型的内部类Meta中设置managed = True.

完成所有这些后,运行

python manage.py migrate

你可能不得不一遍又一遍地调整它以使其正确.我强烈建议备份和良好(可能是自动化)设置,以保持测试和调整,以使其正确.

上一篇:PHP包名解释


下一篇:我对C#的认知。