gpt4 book ai didi

php - 将遗留 mySQL 数据库集成到新的 Django ORM 支持的数据结构中

转载 作者:可可西里 更新时间:2023-11-01 07:39:53 24 4
gpt4 key购买 nike

我们有一个 Django 项目,我们在过去几个月一直致力于该项目,它基本上是一个由 PHP 和 mySQL 提供支持的旧系统的新改进版本。

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

我已经创建了一个名为“integration”的新 Django 项目,并运行了

python django-admin.py inspectdb > models.py

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

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

问题是:

  1. 首先,这个任务在理论上是否可以这样处理,从这里开始纯粹由南迁。

  2. 如何在不破坏所有内容的情况下从 inspect db 的输出中丢失讨厌的 id(PK=true) 列和 Meta 类中的 database_name 属性。

  3. 在对模型进行重大更改时(一次更改多个字段,每个字段的名称、长度和类型),是否可以明确告诉 South 哪个字段是哪个字段,因此现有列中的数据会正确迁移吗?

很明显,这是我的第一个这种规模的集成项目,对于所有无知的问题,我们深表歉意。

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

是通过归纳法(从更大、更中心的对象到较小的对象)还是通过演绎法(相反)更好?

最佳答案

我之前只尝试过一次数据库内省(introspection),但在我可以使用它之前就放弃了该项目,因此请将以下建议仅作为理论上的考虑。顺便说一下,我自省(introspection)的数据库是一个带有 ISAM 引擎的 MySQL——至少,我认为是这样。

根据我有限的经验,我确实记得外键关系总是被检测为 IntegerFields。然而,将 IntegerField 更改为 ForeignKey 字段并没有导致任何问题,IIRC。再一次,这个项目在我能取得任何进展之前就被放弃了。

这是我在尝试该过程时使用的文章:Tutorial: Using Django's Multiple Database Support

我还从这篇文章中获得了有用的信息:Administer WordPress using Django's Admin .

最后,the official Django docs - 他们很微薄,但是,嘿,他们是官方的! :)

祝你好运!

关于php - 将遗留 mySQL 数据库集成到新的 Django ORM 支持的数据结构中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21558094/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com