2015-05-21 2 views
1

У меня проблема миграции с приложением Django 1.8.2. Я использую две модели: Product и Fee. Product недавно изменился на свое поле unique_together. Fee не внес изменений в поле unique_together. Когда я бегу ./manage.py makemigrations я получаю файл с двумя пересадками:Django 1.8 создает миграцию, но ничего не изменилось

operations = [ 
    migrations.AlterUniqueTogether(
     name='fee', 
     unique_together=set([('product', 'fee_type', 'content_type', 'object_id', 'activation_date')]), 
    ), 
    migrations.AlterUniqueTogether(
     name='product', 
     unique_together=set([('producer', 'product_type', 'term')]), 
    ), 
] 

Вы заметите, что меняется уникальное вместе ограничение для Product, который прекрасно. Но тогда он также делает это для Fee. Это вызывает и ошибку, потому что это единственное ограничение связи уже существует в базе данных. Ошибка django.db.utils.ProgrammingError: relation "product_fee_product_id_7b033c697cde4424_uniq" already exists

Каждый раз, когда я бегу ./manage.py makemigrations я получаю AlterUniqueTogether материал для Fee модели, даже если я просто закомментировать или удалить его из файла с обеих миграций. Как я могу предотвратить обнаружение makemigrations этого несуществующего изменения?

+0

Вы пробовали 'flush' и' reset' – taesu

+0

У меня нет, нет. Я не думаю, что знаком с этими командами. – grantmcconnaughey

+0

'flush' сбрасывает данные в вашем db,' reset' перезагружает таблицы. – taesu

ответ

0

Вы могли бы попробовать создать миграцию, которая только изменяет уникальный вместе для Fee модели, а затем использовать опцию --fake применять его

./manage.py migrate yourapp 00XX_your_migration --fake 

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

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