我在下面的两次迁移之间遇到问题。正如您看到下面的代码,它们有migrations.AddField(... name='image', ...)共同点。因此,每次我运行时他们都会抛出以下错误manage.py migrate。
django.db.utils.ProgrammingError:关系“choices_keyword”的列“image”已存在。
只是为了暂时解决这个问题,我必须运行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'),
),
]
Run Code Online (Sandbox Code Playgroud)
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),
),
]
Run Code Online (Sandbox Code Playgroud)
问题是您在同一应用程序中进行了 2 次迁移,且序列号相同为 0015。
要修复它,请按照下列步骤操作
0015_auto_20190404_0925.py或者0015_keyword_image.py你会更清楚python manage.py makemigration <app_name>python manage.py migrate <app_name>