9

Grails Database Migration Pluginを使用して実行するとdbm-gorm-diff(たとえば、Spring Security Facebook プラグインをインストールした後)、次のような問題が発生します。

Error: Error executing SQL CREATE INDEX `FK609FD5A460CFCC39` ON `facebook_user`(`user_id`): Incorrect index name 'FK609FD5A460CFCC39'

問題のインデックスは FK 制約であり、生成されたアップグレード スクリプトで後でインデックスとして再利用されるようです。名前を変更して重複を削除すると、すべて正常に動作します。Mysqlを使用しています。私は何か間違ったことをしていますか?

ありがとう。

4

3 に答える 3

9

changelog.groovyを編集して、createIndexの後にaddForeignConstraintを配置すると、チャームのように機能することがわかりました。変更ログ生成スクリプトのさらに別の問題だと思います。

于 2012-05-23T17:30:39.023 に答える
2

これは、プラグイン自体ではなく、実際には MySQL に関連していると思われます。このバグを参照してください: http://bugs.mysql.com/bug.php?id=55465

セバスチャンの答えは回避策です。

于 2012-07-15T03:17:55.713 に答える
1

この質問/回答に従って、MYSQL は自動的に外部キー列にインデックスを付けます。したがって、外部キー制約を追加する場合、インデックスも定義する必要はありません。db migration プラグインを使用して、dbm-gorm-diff が生成する外部キーの「インデックス」エントリを削除するだけです。

これは名前を変更するよりも少し良いと思います。同じ列に複数のインデックスが作成される可能性が高く、リソースの無駄になるからです。

于 2012-10-05T17:01:04.503 に答える