gpt4 book ai didi

grails - 如何使用Grails DBMigration插件更新已运行的数据库迁移文件?

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

我有一个名为test-plugin-migration-1.2.groovy的迁移文件,它的nedds仅重命名为已在其中列出的迁移已运行,并且还有一些其他自定义迁移。
test-plugin-migration-1.2.groovy-> test-plugin-migration-1-2.groovy
我尝试在名为DATABASECHANGELOG的新文件中为rename-migration.groovy表添加自定义迁移

重命名迁移.groovy

changeSet(author: "Laxmi Salunkhe", id: "12345-1") {
grailsChange {
change {
sql.execute("""update DATABASECHANGELOG set
filename='test-plugin-migration-1-2.groovy' where
filename='test-plugin-migration-1.2.groovy'""")
}
}
}

changelog.groovy
databaseChangeLog = {

// Some Old Migrations

include file: 'rename-migration.groovy'

// Previously it was test-plugin-migration-1.2.groovy
include file: 'test-plugin-migration-1-2.groovy'

include file: 'new-plugin-migration.groovy'
}

它仍然再次运行重命名的文件迁移。

阅读完 updateliquibase文档后,它说明了
Liquibase executes the databaseChangeLog, it reads the changeSets in order and, for each one, checks the “databasechangelog” table to see if the combination of id/author/filepath has been run.
为了避免重命名文件更改集应用于数据库,我该怎么办?

最佳答案

如果您不对现有变更集进行任何更改,则可以使用dbm-changelog-sync命令,它将所有变更集标记为已执行,因此当您再次运行应用程序时,您的变更日志将不会再次执行,并且将被视为已应用

参见dbm-changelog-sync

关于grails - 如何使用Grails DBMigration插件更新已运行的数据库迁移文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30045054/

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