2009-10-29 47 views

回答

16

有一个实用工具,称为manage.py inspectdb从您现有的数据库中生成模型。它工作得很好。

$ python manage.py inspectdb > models.py 
+2

是,Django的管理inspectdb'应该是你要搜索的内容。 – Michael 2009-10-30 06:24:14

3

如果你的数据库是不是很简单 - 或者设计得非常好 - 你会发现它不合身和Django。

尽管reverse engineering工作正常,但您可能会发现原始数据库设计存在缺陷,并且您有许多笨拙的解决方法。

问题是与旧数据模型一起工作的“遗留软件”之一。

我建议你做以下事情。

  1. 使用Django设计正确的数据模型。

  2. 将正确的模型映射到您拥有的任何模型。

  3. 编写一个转换脚本,它使用简单的直接SQL和Django ORM将数据从非Django友好的迁移到更好的模型。

    • 如果您有遗留软件,则必须制定适当的数据移动计划。

    • 如果您没有任何旧版软件,则只需运行一次该转换。

相关问题