我想了解python-django
。
我想把自己的应用程序命名为书籍。
当我运行此命令时
$ python manage.py sqlall books
出现以下错误
CommandError:应用程序“书籍”具有迁移功能。当应用程序迁移时,只能使用sqlmigrate和sqlflush命令。
我不明白为什么会出现这个错误,这是什么意思?任何帮助,将不胜感激。感谢
答案 0 :(得分:5)
您可以运行
manage.py makemigrations
接着是
manage.py migrate
或只是删除迁移文件夹
编辑 - 将'makemigration'更改为'makemigrations'
答案 1 :(得分:0)
输入python manage.py sqlall --help
后,我得到以下内容:
Prints the CREATE TABLE, custom SQL and CREATE INDEX SQL statements for the given model module name(s).
它打印用于创建这些表的SQL。由于它们已经存在,Django不会打印它们并指示使用sqlmigrate
(打印SQL用于特定的迁移)或sqlflush
(打印SQL将表返回到其初始状态)。
答案 2 :(得分:0)
来自sqlall
django-admin.py sqlall
打印给定的CREATE TABLE和初始数据SQL语句 应用名称。
在从1.7开始的django的后续版本中,你可以这样做:
python manage.py sqlmigrate appname migration_name
当您按照django教程进行操作时,对于您的情况,这将是
python manage.py sqlmigrate books 0001
这在django 1.8中对我有用。您可以阅读sqlmigrate
django-admin sqlmigrate
打印指定迁移的SQL。这需要一个活动的数据库连接,它将用于解析约束名称;这意味着您必须针对您希望以后应用它的数据库副本生成SQL。