Как игнорировать некоторые миграции в производстве - PullRequest
0 голосов
/ 24 июня 2019

По ошибке теперь есть несогласованность в производственной и моей локальной Django Migrations, и команда makemigrations будет генерировать правильные миграции, которые при локальном запуске с пустой базой данных.например, эта миграция сгенерирует:

class Migration(migrations.Migration):

    dependencies = [
        ('campaign', '0208_auto_20190619_0929'),
    ]

    operations = [
        migrations.RemoveField(
            model_name='bannerad',
            name='average_price',
        ),
        migrations.RemoveField(
            model_name='bannerad',
            name='click',
        ),
        .... blah
        migrations.AlterField(
            model_name='bannerad',
            name='size',
            field=models.IntegerField(choices=[(0, '120x240'), (1, '120x600'), (2, '970x250'), (3, '160x600'), (4, '240x240'), (5, '300x100'), (6, '300x250'), (7, '468x60'), (8, '600x300'), (9, '728x90')]),
        ),
    ]

, но в рабочей среде сгенерированные миграции уже перенесены (например, модель Bannerad в рабочей базе данных не имеет average_price), а когда я запускаю migrateКоманда в производстве.Как я могу исправить эту проблему?

1 Ответ

1 голос
/ 24 июня 2019

Вы можете пометить миграцию как уже примененную с помощью параметра --fake

Например, чтобы имитировать каждую непримененную миграцию вплоть до 0209:

manage.py migrate --fake campaign 0209

Обратите внимание, что вы можете подделать только полную миграцию, а не отдельные операции в рамках миграции.

...