CommandError:应用程序“书籍”具有迁移功能。应用程序迁移时,只能使用sqlmigrate和sqlflush命令

时间:2015-05-27 08:11:57

标签: python django

我想了解python-django。 我想把自己的应用程序命名为书籍。

当我运行此命令时

$ python manage.py sqlall books

出现以下错误

  

CommandError:应用程序“书籍”具有迁移功能。当应用程序迁移时,只能使用sqlmigrate和sqlflush命令。

我不明白为什么会出现这个错误,这是什么意思?任何帮助,将不胜感激。感谢

3 个答案:

答案 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文档
  

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。