第 3 方应用迁移之前的 Django 运行 迁移

Django run migration before 3rd party app migration

我正在安装第 3 方应用程序,但由于名称冲突需要重命名我的其中一个应用程序。作为重命名的一部分,我需要编写一个迁移来更新 django_content_typedjango_migrations 表。

问题是当迁移 运行 时,第 3 方应用程序迁移 运行 在我之前。我怎样才能在第 3 方应用程序之前强制进入 运行?

当前迁移代码:

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\';'
    ),
]

谢谢

尝试删除您的 INSTALLED_APPS 设置变量的第三方应用程序并迁移,然后将其重新放入 INSTALLED_APPS

dependenciesrun_before 可帮助您订购迁移。参见:https://docs.djangoproject.com/en/1.9/howto/writing-migrations/#controlling-the-order-of-migrations

在您的情况下,您需要在包含第 3 方应用程序迁移的迁移中提供 run_before 列表。这将使您的迁移 运行 在列表中指定的那些之前。