是否有可能从数据库中生成Django模型?

我一直在与Django和Django ORM在家里搞混,我不得不说,我觉得这是在易用性方面最好的之一。

但是,我想知道是否有可能在“反向”使用它。

基本上我想要做的是从现有的数据库模式(从不使用django,是相当古老的项目)生成Django模型。

这可能吗?

更新:有问题的数据库是Oracle

是的,使用inspectdb命令:

inspectdb

反思DATABASE_NAME设置指向的数据库中的数据库表,并将Django模型模块(models.py文件)输出到标准输出。

如果你有一个你想使用Django的遗留数据库,请使用它。 该脚本将检查数据库并为其中的每个表创build一个模型。

正如您所预料的那样,创build的模型将具有表中每个字段的属性。 请注意,inspectdb在其字段名称输出中有一些特殊情况:

[…]

(Django 1.7.1)简单地运行python manage.py inspectdb将为数据库中的所有表创build类,并在控制台上显示。

  $ python manage.py inspectdb 

使用标准的Unix输出redirect将其保存为文件:

  $ python manage.py inspectdb > models.py 

(这对我和mysql和django 1.9都适用)