gpt4 book ai didi

grails - Grails数据迁移回滚

转载 作者:行者123 更新时间:2023-12-02 14:44:35 24 4
gpt4 key购买 nike

嗨,我正在尝试使用Grails域类进行一些非常简单的操作。我正在向类(class)添加一个字段,并且想使用数据迁移插件回滚一次,以便删除添加的字段。

首先,我创建了初始更改日志,如下所示:

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运行应用程序),然后执行:

grails dbm-rollback-count 1

之后,我使用以下命令再次运行该应用程序:grails run-app
但 Realm 仍然存在。

我正在使用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.....

有人可以指导我如何执行回滚吗?
我在用:
Grails 2.2.2
数据库迁移:1.3.2

最佳答案

当执行 grails dbm-rollback-count 1 时,它仅通过使用日志中设置的最后更改并将其撤消的groovy changelog来对数据库进行更改。如果再次运行您的应用程序,则Groovy.config中的以下几行会将这些字段放回表中:

grails.plugin.databasemigration.updateOnStart = true grails.plugin.databasemigration.updateOnStartFileNames = ['changelog.groovy']

我不确定在我的情况下dbm-rollback-count服务器的用途是什么,但是它的作用是什么。
我以为执行回滚不仅会删除数据库中的最后一个变更集(添加的字段),还会从域类中删除该字段变量。

关于grails - Grails数据迁移回滚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17141070/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com