У меня проблема между двумя миграциями ниже. Как вы видите в приведенном ниже коде, у них есть общее migrations.AddField(... name='image', ...)
. Из-за этого они выдают следующую ошибку каждый раз, когда я запускаю manage.py migrate
.
django.db.utils.ProgrammingError: column "image" of relation "choices_keyword" already exists.
Просто чтобы временно решить эту проблему, мне нужно запустить manage.py migrate --fake
, тогда это работает, но я знаю, что использовать -fake каждый раз - неправильный способ. Как я могу решить эту проблему?
0015_auto_20190404_0925.py
class Migration(migrations.Migration):
dependencies = [
('choices', '0014_auto_20190111_1625'),
]
operations = [
migrations.AddField(
model_name='keyword',
name='image',
field=imagekit.models.fields.ProcessedImageField(blank=True, null=True, upload_to=modvisor.choices.models.image_path),
),
migrations.AddField(
model_name='keyword',
name='status',
field=models.CharField(choices=[('inactive', 'Inactive'), ('active', 'Active')], default='inactive'),
),
]
0015_keyword_image.py
class Migration(migrations.Migration):
dependencies = [
('choices', '0014_auto_20190111_1625'),
]
operations = [
migrations.AddField(
model_name='keyword',
name='image',
field=imagekit.models.fields.ProcessedImageField(blank=True, null=True, upload_to=modvisor.choices.models.image_path),
),
]
Проблема в том, что у вас есть 2 миграции в одном приложении с одинаковым серийным номером 0015.
Чтобы исправить это, выполните следующие действия.
0015_auto_20190404_0925.py
или 0015_keyword_image.py
вам лучше знатьpython manage.py makemigration <app_name>
python manage.py migrate <app_name>
Да, это безопасно, если миграция не выполняется в БД