Django 如何修复迁移错误I';我要去南方?
我试图将下面模型中的一个字段从CharField更改为ForeignKey,但在运行迁移时出错。我得到的错误是: 致命错误-以下SQL查询失败:在“reserve\u reviewbackup”(“用户id”)上创建索引“reserve\u reviewbackup\u fbfc09f1”; 错误是:索引保留\u reviewbackup\u fbfc09f1已存在 ! 在迁移的实际运行期间发现错误!流产 !!因为您的数据库不支持运行 ! 在事务中改变模式的语句,我们有 ! 使其在迁移之间处于过渡状态Django 如何修复迁移错误I';我要去南方?,django,view,model,foreign-keys,django-south,Django,View,Model,Foreign Keys,Django South,我试图将下面模型中的一个字段从CharField更改为ForeignKey,但在运行迁移时出错。我得到的错误是: 致命错误-以下SQL查询失败:在“reserve\u reviewbackup”(“用户id”)上创建索引“reserve\u reviewbackup\u fbfc09f1”; 错误是:索引保留\u reviewbackup\u fbfc09f1已存在 ! 在迁移的实际运行期间发现错误!流产 !!因为您的数据库不支持运行 ! 在事务中改变模式的语句,我们有 ! 使其在迁移之间处于过
class Reviewbackup(models.Model):
review = models.CharField('Review', max_length = 2000)
user = models.CharField('Username', max_length = 200)
rating = models.IntegerField(max_length=2, choices=RATING_OPTIONS)
product = models.ForeignKey(Productbackup)
def __unicode__(self):
return self.review
user = models.ForeignKey(User, related_name='reviews')
我以前做过这个。只要从数据库管理员手动删除索引,一切都会正常工作。我以前做过。只需从数据库管理员手动删除索引,一切正常。在执行相同版本时(将字段类型从CharField更改为ForeignKey,而不更改其名称)也会出现同样的错误,这听起来像是一个bug。(south 0.7.6)为了使用south完成所描述的更改,我使用了两个步骤:1)第一次迁移,在这里我更改了字段的类型和名称(名称设置为临时值);2)第二次迁移,在这里我将字段的名称更改回原始名称(临时名称已放弃)。当然,South已经修复了我的Sqlite数据库。。。让我们把这作为一个很好的教训,在迁移之前总是转储所有DB内容:
python manage.py dumpdata>savemyass.json
您能在更改前后编写代码吗?在执行相同的版本时(将字段类型从CharField更改为ForeignKey,而不更改其名称),对我来说听起来像个bug。(south 0.7.6)为了使用south完成所描述的更改,我使用了两个步骤:1)第一次迁移,在这里我更改了字段的类型和名称(名称设置为临时值);2)第二次迁移,在这里我将字段的名称更改回原始名称(临时名称已放弃)。当然,South已经修复了我的Sqlite数据库。。。让我们将此作为迁移之前始终转储所有DB内容的重要经验:python manage.py dumpdata>savemyass.json
您能在更改之前和之后编写代码吗?