django.db.utils.ProgrammingError:关系“ choices_keyword”的列“ image”已存在

时间:2019-04-10 20:59:12

标签: django

我在下面的两次迁移之间遇到问题。如您所见,下面的代码共有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'),
        ),
    ]

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),
        ),
    ]

1 个答案:

答案 0 :(得分:2)

问题在于,您在同一应用中使用相同的序列号0015进行了两次迁移。

要解决此问题,请按照以下步骤操作

  • 删除您更了解的最新迁移文件0015_auto_20190404_0925.py0015_keyword_image.py
  • 进行移民。 python manage.py makemigration <app_name>
  • 进行迁移。python manage.py migrate <app_name>