Как изменить столбец с помощью подключаемого модуля миграции базы данных Grails Groovy DSL?

Можете ли вы привести пример отличного набора изменений с использованием метода modifyDataType?

Я пробовал это:

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

Но modifyDataType не опознается. Я также пробовал modifyColumn, но получаю тот же результат.

Основной вопрос: какие теги поддерживает DSL и как они используются?


person Hugo    schedule 02.06.2011    source источник
comment
Поскольку плагин все еще находится в стадии разработки (в настоящее время версия 0.2.1), документация, вероятно, не так полна, как будет, когда плагин достигнет версии 1.0. Я бы подумал, что он поддержит любой рефакторинг Liquibase, но, учитывая ваш опыт, видимо, нет? Вы всегда можете попробовать открыть задачу JIRA, чтобы посмотреть, можно ли ее добавить в документацию. .   -  person Rob Hruska    schedule 03.06.2011
comment
Кроме того, FWIW, изменяя имя свойства домена и запуская dbm-gorm-diff file.groovy, создает наборы изменений с dropColumn и addColumn вместо использования модификации. Возможно, переименование/изменение столбца включено в дорожную карту. Вероятно, вы можете написать свой собственный набор изменений для переноса данных в краткосрочной перспективе.   -  person Rob Hruska    schedule 03.06.2011
comment
Хотя плагин только версии 0.2.1, он очень стабилен и фактически является кандидатом на выпуск версии 1.0. Есть пара открытых проблем, которые я хотел бы исправить перед официальной версией 1.0, и, конечно, для этого требуется дополнительная документация, но в остальном это в основном полная функциональность.   -  person Burt Beckwith    schedule 03.06.2011
comment
@Burt - Согласен, что он стабилен (я действительно не собирался подразумевать, что это не так). Я использую его уже некоторое время и очень доволен им. Спасибо за ваше развитие на нем.   -  person Rob Hruska    schedule 03.06.2011


Ответы (2)


Все рефакторинги Liquibase должны работать — Groovy DSL отражает Liquibase XML. У меня не было теста дляmodifyDataType, но я добавил его в свой тестовый скрипт, и он работал нормально — см. https://github.com/grails-plugins/grails-database-migration/blob/master/testapp/price.changelog.groovy

Было бы полезно выяснить, что не так, если бы вы могли показать некоторую информацию о том, как это терпит неудачу.

person Burt Beckwith    schedule 02.06.2011
comment
Master теперь является подключаемым модулем Grails 3, и, по-видимому, тестовое приложение было перемещено (я не работал над обновлением Grails 3). Но старый подключаемый модуль находится в ветке 1.x, а указанный файл — здесь - person Burt Beckwith; 26.10.2015

Это будет работать следующим образом:

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)")
  }
}
person confile    schedule 29.01.2015