我发现了类似的问题,但是他们在应用中,我的cli命令,即php app/console doctrine:schema:update --force
或php app/console doctrine:migrations:migrate
错误:
Migration 20130112151503 failed during Execution. Error An exception occurred wh
ile executing 'CREATE UNIQUE INDEX UNIQ_68D3801E989D9B62 ON artists (slug)':
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '' for key
'UNIQ_68D3801E989D9B62'
[Doctrine\DBAL\DBALException]
An exception occurred while executing 'CREATE UNIQUE INDEX UNIQ_68D3801E989
D9B62 ON artists (slug)':
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '' fo
r key 'UNIQ_68D3801E989D9B62'
我真的希望迁移可以解决这个错误,但是唉。如何解决此问题,例如我只能在实时服务器上运行迁移命令。为什么迁移不会首先丢弃唯一索引(如果存在)?或者为什么不检测到已经存在唯一索引?
答案 0 :(得分:3)
那个SQL错误并不是说已经有一个唯一的索引,它说slug列有重复的值而且因为它而无法添加索引。
确保slug列只有唯一(或者null,但可能不建议用于slug列)值,然后尝试再次运行迁移。
答案 1 :(得分:0)
这是因为数据库中的slug
字段为空或重复。因此,尝试删除表中的所有内容并再次生成命令