6

有什么方法可以加快 liquibase 回滚和更新操作的 maven 任务?

我现在在数据库中有大约 280 个变更集,当我进行更新时,仅从 databasechangelog 中读取就需要很长时间。

我正在使用 liquibase 2 和许多 sql 格式的文件来进行变更集。谢谢

编辑:在执行中添加更具体的时间范围

INFO 11/16/12 10:46 AM:liquibase: Reading from databasechangelog
INFO 11/16/12 10:54 AM:liquibase: Successfully released change log lock

在此示例中,它在 MBP 上本地运行(具有 8 gig ram 的核心 i7)

4

3 回答 3

1

我注意到了同样的事情。通过 Maven 使用它时,我看到以下内容:

[INFO] Executing on Database: jdbc:postgresql://localhost/mydb
INFO 11/5/12 1:01 PM:liquibase: Successfully acquired change log lock
INFO 11/5/12 1:01 PM:liquibase: Reading from databasechangelog
INFO 11/5/12 1:01 PM:liquibase: Reading from databasechangelog
INFO 11/5/12 1:02 PM:liquibase: ChangeSet mydb/db.changelog-006.sql::55::ebridges ran successfully in 41ms
INFO 11/5/12 1:02 PM:liquibase: Successfully released change log lock
INFO 11/5/12 1:02 PM:liquibase: Successfully released change log lock

请注意,总体而言,运行需要两分钟来执行单个变更集,而该变更集本身只需要 41 毫秒的执行时间。那很慢。

于 2012-11-05T18:06:20.300 回答
1

在我的机器上,我复制了这个问题,并且主线程被卡在了本机方法上:

java.lang.Class.getGenericSignature()

这表明问题出在 JDK 实现上。考虑升级或切换实施。

于 2013-10-08T14:42:35.350 回答
0

在我的场景中,使用loadData.csv 文件是 liquibase 需要很长时间才能执行的原因(我正在使用 liquibase 2.0.5)。

例如,这是一个导致 liquibase 变慢的变更集:

<changeSet id="foo" author="bar">
    <comment>Baz</comment>
    <loadData encoding="UTF-8"
              separator=";"
              file="some-file.csv"
              tableName="TableName"/>
    <rollback>
        <sqlFile path="rollback.sql" relativeToChangelogFile="true" splitStatements="false" />
    </rollback>
</changeSet>
于 2014-03-07T12:49:49.980 回答