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

问题描述 投票:0回答:1

我在下面的两次迁移之间遇到了问题。正如您看到下面的代码,他们有共同的migrations.AddField(... name='image', ...)。因此,每次运行manage.py migrate时,它们都会抛出以下错误。

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

只是暂时解决这个问题,我必须运行manage.py migrate --fake然后它正在工作,但我知道每次使用-fake都不是一个正确的方法。我该如何解决这个问题?

0015_auto_20190404_0925.朋友

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.朋友

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),
        ),
    ]
django
1个回答
2
投票

问题是您在具有相同序列号0015的同一应用程序中进行了2次迁移。

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

  • 删除最新的迁移文件0015_auto_20190404_0925.py0015_keyword_image.py你会更清楚
  • 做makemigration。 python manage.py makemigration <app_name>
  • 做migrate.python manage.py migrate <app_name>
© www.soinside.com 2019 - 2024. All rights reserved.