我正在使用Django 1.9,我正试图获取用于从models.py创建数据库表的SQL。
似乎在之前版本的Django中可以做到:
python manage.py sqlall <app_name>
但似乎不再是这种情况。我得到Unknown command: 'sqlall'
。文档中没有任何内容似乎提供此功能。
如何查看我的模型如何转换为SQL?
答案 0 :(得分:10)
没有迁移的应用程序的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
选项一起使用。