姜戈 "You have unapplied migrations"。哪个?
Django "You have unapplied migrations". Which ones?
Django runserver
抱怨:
You have unapplied migrations;
your app may not work properly until they are applied.
Run 'python manage.py migrate' to apply them.
如何在没有 运行 迁移的情况下找出未应用的迁移?
如果您使用的是 1.7,请使用 python manage.py migrate --list
。 (docs)
如果您使用的是 1.8 或更高版本,请使用 python manage.py showmigrations --list
。 (docs)
无论哪种情况,都会有一个 [X] 来显示应用了哪些迁移。
使用 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 的评论进行编辑。不错的收获。感谢您指出。
使用此命令后:
python manage.py migrate
你得到同样的错误:你有未应用的迁移;
解决此错误的简单方法是
转到您的项目目录搜索在命令
之后创建的数据库目录
python manage.py migrate
在我的例子中,创建的数据库是 db.sqlite3
只需删除该文件并转到您的终端
并使用 manage.py makemigrations
后跟 manage.py migrate
.
这对我有用。祝一切顺利
一旦您 运行 迁移命令 (python manage.py migrate
) 它总是会在该特定应用程序中生成一个 auto_migration.py
文件。
同样的文件,您将能够在您的数据库中看到它。如果您的数据库中缺少该文件,那么您的项目将抱怨 "un-applied migrations"。
所以只需转到您的数据库并手动为 auto_migration.py
创建一个条目。
您可以使用 migrate
命令的 --plan
选项查看未应用迁移的列表:
python manage.py migrate --plan
它在 Django 2.2 中引入并记录在案 here。
Django runserver
抱怨:
You have unapplied migrations;
your app may not work properly until they are applied.
Run 'python manage.py migrate' to apply them.
如何在没有 运行 迁移的情况下找出未应用的迁移?
如果您使用的是 1.7,请使用 python manage.py migrate --list
。 (docs)
如果您使用的是 1.8 或更高版本,请使用 python manage.py showmigrations --list
。 (docs)
无论哪种情况,都会有一个 [X] 来显示应用了哪些迁移。
使用 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 的评论进行编辑。不错的收获。感谢您指出。
使用此命令后:
python manage.py migrate
你得到同样的错误:你有未应用的迁移;
解决此错误的简单方法是 转到您的项目目录搜索在命令
之后创建的数据库目录python manage.py migrate
在我的例子中,创建的数据库是 db.sqlite3
只需删除该文件并转到您的终端
并使用 manage.py makemigrations
后跟 manage.py migrate
.
这对我有用。祝一切顺利
一旦您 运行 迁移命令 (python manage.py migrate
) 它总是会在该特定应用程序中生成一个 auto_migration.py
文件。
同样的文件,您将能够在您的数据库中看到它。如果您的数据库中缺少该文件,那么您的项目将抱怨 "un-applied migrations"。
所以只需转到您的数据库并手动为 auto_migration.py
创建一个条目。
您可以使用 migrate
命令的 --plan
选项查看未应用迁移的列表:
python manage.py migrate --plan
它在 Django 2.2 中引入并记录在案 here。