有没有办法加快liquibase回滚和更新操作的maven任务?
我现在在db中有大约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(核心i7,8 gig ram)上本地运行
答案 0 :(得分: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毫秒的执行时间。那很慢。
答案 1 :(得分:1)
在我的机器上,我复制了问题,主线程卡在本机方法上:
java.lang.Class.getGenericSignature()
这表明问题在于JDK实现。考虑升级或切换实施。
答案 2 :(得分:0)
在我的场景中,使用带有.csv文件的loadData
是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>