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

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

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

pytohn django-admin.py inspectdb > models.py

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

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

问题是:
  • 首先,这个任务理论上可以这样处理吗,纯粹是从这里开始南迁。
  • 如何在不破坏所有内容的情况下从inspect db 的输出中丢失讨厌的id(PK=true) 列和Meta 类中的database_name 属性。
  • 在对模型进行重大更改时(一次几个字段,每个字段的名称、长度和类型),无论如何要明确告诉南哪个字段是哪个字段,这样现有列中的数据将被正确迁移? .

  • 显然这是我第一个这种规模的集成项目,很抱歉所有无知的问题。

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

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

    最佳答案

    我之前只尝试过一次数据库自省(introspection),但在我无法使用它之前就放弃了该项目,因此请考虑以下建议仅作为理论上的建议。顺便说一句,我内省(introspection)的数据库是带有 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 ORM 驱动的数据结构中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21558094/

    10-10 20:36
    查看更多