0

我发现了类似的问题,但它们在应用程序中,我的与 cli 命令有关,即php app/console doctrine:schema:update --forcephp 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'

我真的希望迁移能够解决这个错误,但是唉。我该如何解决这个问题,例如我只能在实时服务器上运行迁移命令。如果存在,迁移为什么不首先删除唯一索引?或者为什么它没有检测到已经有一个唯一索引?

4

2 回答 2

3

该 SQL 错误并不是说已经存在唯一索引,而是说 slug 列具有重复值,因此无法添加索引。

确保 slug 列只有唯一(或 null,但可能不建议用于 slug 列)值,然后尝试再次运行迁移。

于 2013-01-12T14:41:25.480 回答
0

这是因为slug数据库中的字段为空或重复。因此,尝试删除表中的所有内容并再次生成命令

于 2016-03-09T09:29:30.070 回答