Grails数据库迁移插件问题

时间:2012-05-12 20:58:28

标签: mysql grails plugins database-migration

当我使用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。我做错了吗?

感谢。

3 个答案:

答案 0 :(得分:9)

我刚刚发现如果我编辑changelog.groovy以在createIndex之后放置addForeignConstraint,它就像魅力一样。我想在changelog生成脚本中还有另一个问题。

答案 1 :(得分:2)

我怀疑这实际上与MySQL有关,而与插件本身无关。请参阅此错误:http://bugs.mysql.com/bug.php?id=55465

Sebastien的答案是一个解决方法。

答案 2 :(得分:1)

根据this question/answer,MYSQL自动索引外键列。因此,当您添加外键约束时,您也不需要定义索引。我使用db migration插件,只需删除'索引' dbm-gorm-diff生成的外键条目。

我认为这比更改名称要好一些,因为这可能会在同一列上创建多个索引,这只会浪费资源。