数据库
首页 > 数据库> > php – 将遗留的mySQL数据库集成到新的Django ORM驱动的数据结构中

php – 将遗留的mySQL数据库集成到新的Django ORM驱动的数据结构中

作者:互联网

我们有一个Django项目,我们在过去几个月里一直在工作,它基本上是由PHP和mySQL驱动的旧系统的新改进版本.

现在我需要将mySQL表中的所有旧数据转换为新的基于Django-ORM的数据结构.

我已经创建了一个新的Django项目名称’integration’,然后运行了

pytohn django-admin.py inspectdb > models.py

结果并不是那么好,因为我们使用的是MyISAM数据库引擎,模型之间没有明确的关系.

此外,模型在设计上有很大不同,尽管底线是相同的(否则表示相同的数据).

问题是:

>首先,理论上可以通过这种方式处理这项任务,纯粹是从此后的南方迁移.
>如何从inspect db的输出中丢失令人讨厌的id(PK = true)列和Meta类中的database_name属性,而不会破坏它.
>当对模型进行重大更改(每次多个字段,每个字段的名称,长度和类型)时,无论如何都要明确告诉南哪个字段是哪个,那么现有列中的数据是否会正确迁移? .

显然,这是我第一个这种规模的整合项目,对所有无知的问题都很抱歉.

你会推荐什么方法?,有什么工具可以帮助我吗?

通过归纳(从较大的,更中心的对象,到较小的对象)或通过演绎(反过来)来进行是否更好?

解决方法:

我之前只尝试过一次数据库内省,并且在我可以使用它之前放弃了项目,所以请将以下建议仅作为理论考虑.顺便说一句,我反省的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 – 他们很少,但嘿,他们是正式的!

标签:php,mysql,django,django-south,integration
来源: https://codeday.me/bug/20190708/1406286.html