【发布时间】:2020-07-30 16:50:21
【问题描述】:
在一个 Django 项目中,我被要求 remove completely an installed app;
我已经:
- 删除了所有代码引用
- 从
INSTALLED_APPS中删除 - 检查周围没有数据库表
到目前为止,一切都很好;运行时出现问题:
$> python manage.py migrate
因为有一个迁移文件包含以下内容:
class Migration(migrations.Migration):
dependencies = [
('THE REMOVED APP', '0001_initial'),
...
operations = [
...
上面写着:
django.db.migrations.exceptions.NodeNotFoundError:
Migration xxx.yyy dependencies reference nonexistent parent node ('THE REMOVED APP', '0001_initial')
我可以更改迁移文件并提交以下内容吗?
@@ -14,7 +14,6 @@ class Migration(migrations.Migration):
dependencies = [
- ('THE REMOVED APP', '0001_initial'),
]
【问题讨论】:
-
取决于迁移文件的内容。如果迁移具有依赖关系,则迁移可能会引用该应用程序(例如,创建指向
other_app.DeletedModel的外键。运行该迁移将失败,因为other_app.DeletedModel不存在。 -
在这种情况下并非如此,但在这种情况下@Alasdair会是这样吗?
-
您可以通过squash the migrations 删除对已删除应用的引用。
标签: python django django-migrations