我正在安装第三方应用,但需要重命名我的一个应用程序,因为名称发生了冲突。作为此重命名的一部分,我需要编写迁移以更新django_content_type
和django_migrations
表。
问题在于迁移运行时,第三方应用程序迁移在我之前运行。我怎样才能强迫我在第三方应用程序之前运行?
当前迁移代码:
class Migration(migrations.Migration):
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('my_cms', '0003_promotedsearch_title_it'),
]
operations = [
migrations.RunSQL(
'UPDATE django_content_type SET app_label=\'my_cms\' '
'WHERE app_label=\'cms\';'
),
migrations.RunSQL(
'UPDATE django_migrations SET app=\'my_cms\' WHERE app=\'cms\';'
),
]
感谢
答案 0 :(得分:1)
dependencies
和run_before
可帮助您订购迁移。请参阅:https://docs.djangoproject.com/en/1.9/howto/writing-migrations/#controlling-the-order-of-migrations
在您的情况下,您需要在包含第三方应用迁移的迁移中提供run_before
列表。这将使您的迁移在列表中指定的迁移之前运行。
答案 1 :(得分:0)
尝试删除INSTALLED_APPS
设置变量的第三方应用并迁移,然后再次将其放入INSTALLED_APPS
。