我们有一个基于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
你可能不得不一遍又一遍地调整它以使其正确.我强烈建议备份和良好(可能是自动化)设置,以保持测试和调整,以使其正确.