2012-05-12 10 views
9

cuando se utiliza la Grails Database Migration Plugin y ejecutar un dbm-gorm-diff (por ejemplo, después de instalar el plugin Spring Security Facebook) He estado recibiendo problemas como:Grails base de datos de migración Problemas Plugin

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

Parece que el índice en cuestión es una restricción FK y luego se reutiliza como un índice más adelante en el script de actualización generado. Si cambio el nombre, eliminando así el duplicado, todo funciona bien. Estoy usando Mysql. ¿Estoy haciendo algo mal?

Gracias.

+0

¿Has estado utilizando el complemento con éxito hasta ahora? – David

+0

@David Todavía es bastante nuevo para mí. Intenté algunas mejoras básicas y funcionaron. – skaz

+0

Estaba pensando si tal vez tiene 'dbcreate =" ... algo .. "' en su archivo DataSource.groovy podría estar en conflicto con el complemento. Pero si ya has hecho las actualizaciones, eso parece ser menos probable. – David

Respuesta

9

Acabo de descubrir que si edito changelog.groovy para colocar addForeignConstraint's después de createIndex, funciona como un amuleto. Sin embargo, supongo que hay otro problema en el script de generación de registro de cambios.

+1

Extraño, esta solución no funcionó para mí. Tenía múltiples 'addForeignConstraint's y múltiples' createIndex's. Sin embargo, cambiar la clave sí le permitió funcionar ... no sé si eso tendrá algún efecto adverso más adelante. – Weezle

1

Según this question/answer, MYSQL indexa automáticamente las columnas de clave externa. Por lo tanto, cuando agrega una restricción de clave externa, no es necesario que también defina un índice. Utilizo el plugin db migration y simplemente elimino las entradas 'index' para claves foráneas que genera el dbm-gorm-diff.

Creo que esto es un poco mejor que cambiar el nombre, ya que es probable que cree más de un índice en la misma columna, que es solo un desperdicio de recursos.

Cuestiones relacionadas