【问题标题】:Liquibase in multiple modules on same database同一数据库上的多个模块中的 Liquibase
【发布时间】:2017-09-22 09:34:08
【问题描述】:

我们有两个模块,app 和 admin,这些模块是耦合在一起的,它们有一个数据库。

有没有办法在同一个数据库的两个模块中都有 liquibase 文件?

【问题讨论】:

  • 您找到解决问题的方法了吗?

标签: database-migration liquibase


【解决方案1】:

liquibase 需要一个表 (DATABASECHANGELOG) 来跟踪对其管理的架构所做的更改。

您还可以将您的应用程序拆分为两个不同的架构并拥有独立的变更集管理

只保留一个模式并手动管理您的两个 db-changelog。在这种情况下,您必须注意避免带有前缀的变更集使用相同的 id,例如

【讨论】:

    【解决方案2】:

    是的,这是完全可能的。您没有指定运行 liquibase 的方式或源代码的排列方式(或许多细节),但如果您在单个 github 存储库中拥有两个模块的源代码并且您在 Linux 上,您可以只拥有一个地方的更改日志和一个软链接,以便该文件也似乎在另一个地方。然后,如果您使用 Maven 构建一个独立的 jar,您可以配置 maven POM,以便它将更改日志打包到两个 jar 中。只要相对路径相同,每当您从任一 jar 触发数据库模式更新时,每个应用程序都应将它们拥有的更改日志与它们正在使用的数据库的模式进行比较,查看 DATABASECHANGELOG 表并得出相同的结果关于需要部署哪些变更集的结论。

    【讨论】:

    • 那么,每个开发者都需要做软链接吗?
    猜你喜欢
    • 2014-10-11
    • 2014-02-12
    • 2020-11-27
    • 2016-08-05
    • 2020-09-13
    • 1970-01-01
    • 2014-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多