Django runserver
抱怨:
You have unapplied migrations;
your app may not work properly until they are applied.
Run 'python manage.py migrate' to apply them.
如何在不运行迁移的情况下找出未应用的迁移?
答案 0 :(得分:65)
如果您使用的是1.7,请使用python manage.py migrate --list
。 (docs)
如果您使用的是1.8或以上,请使用python manage.py showmigrations --list
。 (docs)
在任何一种情况下,都会有 [X] 来显示已应用的迁移。
答案 1 :(得分:13)
使用grep对Kevin的回答进行微小修改,仅显示未应用的迁移:
Django 1.7:
python manage.py migrate --list | grep -v '\[X\]'
Django 1.8及以上版本:
python manage.py showmigrations --list | grep -v '\[X\]'
在ngoue评论后编辑。很好的抓住。谢谢你指出来。
答案 2 :(得分:2)
使用此命令后:
python manage.py migrate
您收到相同的错误:您有未应用的迁移;
解决此错误的简单方法是 转到项目目录,搜索在命令
之后创建的数据库目录python manage.py migrate
在我的情况下,db创建的是 db.sqlite3
只需删除该文件即可转到您的终端
并使用manage.py makemigrations
后跟manage.py migrate
。
答案 3 :(得分:1)
答案 4 :(得分:0)
运行迁移命令(python manage.py migrate
)后,它始终会在该特定应用程序中生成一个auto_migration.py
文件。
您也可以在数据库中看到相同的文件。如果您的数据库中缺少该文件,则您的项目将抱怨“未应用的迁移”。
因此,只需进入数据库并手动为auto_migration.py
创建一个条目。