相当于Django 1.9中的sqlall?

时间:2016-02-17 11:41:16

标签: python django

我正在使用Django 1.9,我正试图获取用于从models.py创建数据库表的SQL。

似乎在之前版本的Django中可以做到:

python manage.py sqlall <app_name>

但似乎不再是这种情况。我得到Unknown command: 'sqlall'。文档中没有任何内容似乎提供此功能。

如何查看我的模型如何转换为SQL?

2 个答案:

答案 0 :(得分:10)

deprecated in Django 1.9

  

没有迁移的应用程序的SQL管理命令,sql,sqlall,   将删除sqlclear,sqldropindexes和sqlindexes。

您可以使用的最近命令是sqlmigrate

  

打印指定迁移的SQL。这需要一个活跃的   数据库连接,它将用于解析约束名称;   这意味着您必须针对数据库的副本生成SQL   你希望以后再申请。

您可以使用迁移名称0001_initial作为创建脚本,例如:

python manage.py sqlmigrate myapp 0001_initial

答案 1 :(得分:0)

我发现使用sqlmigrate对我来说是一个非常烂的解决方案。我正在设置逻辑复制,因此我需要数据库的SQL,而不是单个迁移的SQL。

我发现的解决方案是将pg_dump--schema-only选项一起使用。