我们有一个Django项目,我们在过去几个月里一直在工作,它基本上是由PHP和mySQL驱动的旧系统的新改进版本。
现在我需要将mySQL表中的所有旧数据转换为新的基于Django-ORM的数据结构。
我已经创建了一个新的Django项目名称'integration',然后运行
pytohn django-admin.py inspectdb > models.py
结果并不是那么好,因为我们使用的是MyISAM数据库引擎,模型之间没有明确的关系。
此外,模型的设计有很大不同,尽管底线是相同的(否则表示相同的数据)。
问题是:
首先,理论上可以通过这种方式处理这项任务,纯粹是从此后的南方迁移。
如何从inspect db的输出中丢失令人讨厌的id(PK = true)列以及Meta类中的database_name属性,而不会破坏它。
当对模型进行重大更改(每次多个字段,每个字段的名称,长度和类型)时,无论如何都要明确告诉南哪个字段是哪个,所以现有列中的数据会正确迁移吗?
显然,这是我的第一个这种规模的整合项目,对所有无知的问题感到抱歉。
你会推荐什么方法?,有什么工具可以帮助我吗?
最好是通过感应(从较大的,更中心的物体,到较小的物体)或通过演绎(反过来)?。
答案 0 :(得分:1)
我之前只尝试过一次数据库内省,并且在我可以使用它之前放弃了项目,所以请将以下建议视为理论上的。顺便说一句,我反省的db是带有ISAM引擎的MySQL - 至少,我认为是。
我从有限的经验中记得的是,ForeignKey关系总是被检测为IntegerFields。但是,将IntegerField更改为ForeignKey字段并没有造成任何问题,IIRC。然后,该项目在我可以随身携带之前就被放弃了。
以下是我在尝试此过程时使用的文章:Tutorial: Using Django's Multiple Database Support
我也从这篇文章中获得了有用的信息:Administer WordPress using Django's Admin。
最后,the official Django docs - 他们微薄,但嘿,他们是正式的! :)
祝你好运!