【发布时间】:2013-06-13 00:37:45
【问题描述】:
您好,我正在尝试使用 Grails 域类做一些非常简单的事情。我正在向我的班级添加一个字段,并且我想使用数据迁移插件回滚一次,以便删除我添加的字段。
首先我创建了如下的初始更改日志:
grails dbm-generate-changelog changelog.groovy
然后我在 Config.groovy 文件中添加了以下内容:
grails.plugin.databasemigration.updateOnStart = true grails.plugin.databasemigration.updateOnStartFileNames = ['changelog.groovy']
然后我在我的域类中添加了一个额外的字段并执行了以下操作:
grails dbm-gorm-diff 添加-new-field.groovy --add
我运行了应用程序(grails run-app),之后我执行了:
grails dbm-rollback-count 1
之后我再次运行应用程序:grails run-app 但该领域仍然存在。
我正在为数据库使用 MySQL。以下是我在 DataSource.groovy 中的配置方式:
dataSource {
pooled = true
driverClassName = "com.mysql.jdbc.Driver"
dialect = "org.hibernate.dialect.MySQL5InnoDBDialect"
}
hibernate {
cache.use_second_level_cache = true
cache.use_query_cache = false
cache.region.factory_class = 'net.sf.ehcache.hibernate.EhCacheRegionFactory'
}
// environment specific settings
environments {
development {
dataSource {
dbCreate = 'update'
url = "jdbc:mysql://localhost/dashboard?useUnicode=yes&characterEncoding=UTF-8"
username ="foo"
password = "bar"
}
}
..... and on.....
有人可以指导我如何执行回滚吗? 我在用: 圣杯 2.2.2 数据库迁移:1.3.2
【问题讨论】:
-
我也尝试删除 dbCreate='update' ......没有运气
-
我认为它不应该被删除,而是空白:
dbCreate = '' -
“之后我再次使用:grails run-app 运行该应用程序,但该字段仍然存在。”域类中的字段还是表中的列?
-
我的意思是该字段不应再存在,因为我正在回滚到架构没有该字段的时候。
标签: grails grails-orm grails-plugin grails-2.0 grails-domain-class