我发现类似的问题,但他们的应用程序,矿井涉及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'
我真的希望移民会照顾这个错误,但是可惜。我该如何解决这个问题,例如我只能在实时服务器上运行migrations命令。为什么迁移不会首先删除唯一索引(如果存在)?或者为什么它没有检测到已经有一个唯一的索引?
啊,我明白了。它是空的,我会改变它 – Tjorriemorrie
@Mike,你的意思是说,如果我已经有数据库填充数据,并创建新的列与独特的:真我会一直得到这个错误?那么如何处理无法在生产服务器上执行的迁移? –
是的,如果您尝试在已具有重复值的列上创建唯一索引,那么您将遇到错误。在尝试创建唯一索引之前,您必须先解析所有重复项。如果尝试执行其他操作,您的迁移将会崩溃。 – Mike