【问题标题】:Is it possible to execute Liquibase by 'SpringLiquibase.performUpdate' with more than one (or multi) change-logs是否可以通过具有多个(或多个)更改日志的“SpringLiquibase.performUpdate”执行 Liquibase
【发布时间】:2022-01-02 00:23:31
【问题描述】:

我是一名使用 Liquibase 作为数据库迁移工具的开发人员。

现在我有多个更改日志,需要针对给定的数据库架构逐一执行。

我的代码如下所示:

    void performUpdate(DataSource dataSource, String schema) throws LiquibaseException {
        for (String cl : changeLogList) {
            SpringLiquibase liquibase = createLiquibase();

            liquibase.setDataSource(dataSource);
            liquibase.setChangeLog(cl);
            liquibase.setDefaultSchema(schema);

            performUpdate(liquibase);
        }
    }

    void performUpdate(SpringLiquibase liquibase) throws LiquibaseException {
        liquibase.afterPropertiesSet();
    }

我只是想知道是否有办法将所有这些更改日志合并为一个并使用一个SpringLiquibase 实例执行所有这些

这些更改日志有一个列表。这意味着需要为每个更改日志创建“SpringLiquibase”。这将导致需要为每个更改日志创建和释放数据库连接。这可能会导致性能问题。

【问题讨论】:

    标签: liquibase


    【解决方案1】:

    你知道 liquibase include 标签吗?基本思想是拥有一个主变更日志并在其中包含所有子变更日志。

    【讨论】:

    • 我知道 '' 标签。但是我遇到的情况是这些更改日志位于不同的 jar 依赖项中(比如说 A、B 和 C)。并且这些 jar 不包含在每个项目中。 (有些项目可能包括 A、B。有些项目可能只包括 C)所以,如果所有这些更改日志都包含在带有“包含”的主更改日志中。这会导致一些问题。
    • 那么也许每个项目都应该知道它必须包含什么,并且可能有它自己的主变更日志。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-10
    • 2021-08-09
    • 1970-01-01
    • 2014-03-29
    • 2014-06-16
    • 2020-01-15
    • 1970-01-01
    相关资源
    最近更新 更多