2011-06-02 6 views
5

¿Puede darme un ejemplo de un conjunto de cambios maravilloso utilizando el método modifyDataType?¿Cómo modifico una columna usando el Groovy DSL del plugin de migración de base de datos de Grails?

yo probamos este:

databaseChangeLog = { 
    changeSet(author: "user", id: "5-1") { 
     modifyDataType(tableName: "test", columnName: "description4", newDataType: "int(11)") 
    } 
} 

Pero modifyDataType no se reconoce. También probé modifyColumn, pero obtengo el mismo resultado.

La pregunta subyacente es: ¿Qué tipo de etiquetas admite el dsl y cómo se usan?

+0

Desde el plugin está todavía en desarrollo (actualmente la versión 0.2.1), la documentación probablemente no es tan completa como lo será una vez que el plug-in alcanza v1.0 . Hubiera pensado que habría apoyado cualquier [refactorización de liquibase] (http://www.liquibase.org/manual/home), pero dada su experiencia, aparentemente ¿no? Siempre puede intentar [abrir un problema JIRA] (http://jira.grails.org/secure/Dashboard.jspa) para ver si se puede agregar a la documentación. –

+0

Además, FWIW, cambiando el nombre de una propiedad de dominio y ejecutando 'dbm-gorm-diff file.groovy' crea conjuntos de cambios con' dropColumn' y 'addColumn' en lugar de usar modify. Quizás el cambio de nombre de columna/modificación está en la hoja de ruta. Probablemente pueda escribir su propio conjunto de cambios personalizado para migrar los datos a corto plazo. –

+0

Aunque el complemento solo está en v0.2.1, es muy estable y es efectivamente un candidato de versión 1.0. Hay un par de problemas abiertos que me gustaría solucionar antes de un 1.0 oficial y, por supuesto, necesita más documentación, pero de lo contrario es básicamente completo. –

Respuesta

9

Todas las refactorizaciones de Liquibase deberían funcionar: Groovy DSL refleja el Liquibase XML. No tuve una prueba para modifyDataType, pero la agregué a mi script de prueba y funcionó bien. Consulte https://github.com/grails-plugins/grails-database-migration/blob/master/testapp/price.changelog.groovy

. Sería útil averiguar qué sucede si pudiera mostrar información sobre cómo falla.

+2

Señala a un 404 ahora ... – Philippe

+0

Master ahora es el complemento de Grails 3, y aparentemente la aplicación de prueba se movió (no trabajé en la actualización de Grails 3). Pero el plugin anterior está en la rama "1.x" y el archivo referenciado es [aquí] (https://github.com/grails-plugins/grails-database-migration/blob/1.x/testapp/price .changelog.groovy) –

0

Será funciona de esta manera:

databaseChangeLog = { 

    changeSet(author: "test (generated)", id: "1422541392309-2") { 
    comment { 'Rename tabTitle to tabName' } 
    renameColumn(tableName: "user", oldColumnName: "tab_title", newColumnName: "tab_name", columnDataType: "varchar(255)") 
    } 
} 
Cuestiones relacionadas