gpt4 book ai didi

grails - 启动后如何运行Grails数据库迁移

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

对于集成测试,我在bootstrap.groovy中加载了一个“种子”数据库。
我还在开发过程中不时手动加载不同的数据库,以尝试不同的方案。

麻烦的是,数据库迁移插件(非常感谢Bert!)似乎只在启动期间运行,然后才进入引导代码,我看不到任何可以触发它再次运行的地方。

这意味着,如果我加载的数据库“过时”,则必须关闭应用程序并重新启动它才能完成迁移。然后,我必须记住为"new"数据库拍摄快照,这样下次就不必再做一次了。

所有这些真正影响生产力,尤其是在多个重构中。

有更好的方法吗?理想情况下,我想要服务类方法'runMigrations()'或类似的东西。然后,可以在加载工具之后或从引导代码中调用它。

有任何想法吗?

最佳答案

我认为这是可能的,并且这是一个有效的用例,例如在应用程序启动后运行特定的上下文:

import grails.plugin.databasemigration.MigrationUtils
import liquibase.Liquibase

class DatabaseMigrationService {

def runMigrationsForContexts(String contexts) {
def database = MigrationUtils.getDatabase()
Liquibase liquibase = MigrationUtils.getLiquibase(database)
liquibase.update(contexts)
}
}

关于grails - 启动后如何运行Grails数据库迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32863845/

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