0

私は同様の質問を見つけましたが、それらはアプリにありました、私のものは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'

移行によってこのエラーが処理されることを本当に望んでいましたが、残念ながら。この問題を解決するにはどうすればよいですか。たとえば、ライブサーバーでのみ移行コマンドを実行できます。存在する場合、移行で最初に一意のインデックスが削除されないのはなぜですか?または、なぜそれはすでに一意のインデックスがあることを検出しないのですか?

4

2 に答える 2

3

このSQLエラーは、一意のインデックスがすでに存在することを示しているのではなく、slug列に重複する値があり、そのためにインデックスを追加できないことを示しています。

スラッグ列に一意の(またはnullですが、スラッグ列にはおそらく推奨されない)値しかないことを確認してから、移行の実行を再試行してください。

于 2013-01-12T14:41:25.480 に答える
0

これはslug、データベースのフィールドが空または重複しているためです。したがって、テーブル内のすべてを削除して、コマンドを再度生成してみてください

于 2016-03-09T09:29:30.070 に答える