2016-02-04 6 views
0

Я устанавливаю стороннее приложение, но мне нужно переименовать одно из моих приложений, так как имена конфликтуют. В рамках этого переименования мне нужно было написать миграцию для обновления таблиц django_content_type и django_migrations.Django запускает миграцию перед миграцией стороннего приложения

Проблема заключается в том, что миграция выполняется, миграция сторонних приложений выполняется до моего. Как я могу заставить шахту работать перед сторонними приложениями?

Текущий код миграции:

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

благодаря

ответ

1

Есть dependencies и run_before, которые помогут вам заказать миграцию. См.: https://docs.djangoproject.com/en/1.9/howto/writing-migrations/#controlling-the-order-of-migrations

В вашем случае вам необходимо предоставить список run_before в ваших миграциях, содержащих миграции сторонних приложений. Это приведет к тому, что миграция будет выполнена до тех, которые указаны в списке.

0

Попробуйте удалить приложение стороннего ваших INSTALLED_APPS значения переменных и миграции, а затем положить его в INSTALLED_APPS снова.

Смежные вопросы