【问题标题】:Turn on manually liquibase on runtime在运行时手动打开 liquibase
【发布时间】:2019-09-02 23:17:18
【问题描述】:

我正在开发一个使用 Liquibase(连接到 Postgres 容器)的 Spring Boot 应用程序(使用 Maven)。我想在运行时手动运行 liquibase,但我真的不知道该怎么做。我想要一个选项来触发我的应用程序运行并启动 liquibase。

我在 application.properties 文件上关闭了 liquibase,它确实阻止了 liquibase 在启动时运行,但我没有找到任何方法在运行时触发它。

【问题讨论】:

  • 如果您查看SpringLiquibase 是如何创建的here,您可以基本了解如何在运行时执行。注意main方法在#afterPropertiesSet中执行
  • 看过之后,我明白当我将 spring.liquibase.enabled 属性设置为 false 时,spring 甚至不会创建 SpringLiquibase bean。我不能使用 AnnotationConfigApplicationContext 来获取那个 Bean,因为这些 bean 甚至都没有被创建。您能否具体说明我缺少什么,或者我对解决方案的理解不够好。
  • 也许可以尝试在github上创建一些项目,我可以帮助你。

标签: java spring maven liquibase


【解决方案1】:

简单的家伙。

使用 Liquibase 手动更新允许您控制何时更新数据库,但实际执行的内容仍完全由 Liquibase 管理。对于那些需要确切知道数据库正在做什么的人,Liquibase 在命令行、Ant 和 Maven 界面中支持“updateSQL”模式。当运行updateSQL 时,Liquibase 将简单地输出它通常会运行的 SQL。输出包括用于更新数据库的 SQL 以及用于使 DATABASECHANGELOG 表保持最新的 SQL。根据需要检查输出,然后通过您喜欢的任何数据库工具执行它。运行 SQL 后,您的数据库将处于正确状态,Liquibase 将知道运行了什么,因此未来的updateSQL 调用将只包含新的更改集。

点击链接获取具体命令:http://www.liquibase.org/documentation/command_line.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-15
    • 1970-01-01
    • 1970-01-01
    • 2017-05-06
    • 2021-04-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多