liquibase数据库从头开始构建

时间:2015-05-27 08:42:14

标签: mysql liquibase

当我从头开始运行liquibase更新时,需要一段时间,因为该过程会逐个触发每个更改日志。有时我自己的数据库变化很大,如果我想重新开始,最容易重建数据库。

如果我在更改日志中的某个点从liquibase的结果的mysql转储中执行重建,那么重建将是最快的,并且我忽略了之前的更改日志。所以我会删除changelog master中的所有内容,除了我的主构建转储更改日志,它将是整个数据库,并且由于版本控制的原因,我会保留实际的更改日志。

是否有适当/规定/安全的方法从liquibase执行此操作?

1 个答案:

答案 0 :(得分:1)

不幸的是,没有标准的方法来重启"更改日志文件,因为您的环境和设置会极大地影响最适合您的方式。

通常,最简单的方法是不完全重新启动changelog文件,而是对其进行修改。数据库通常在DDL上很快,特别是在空数据库上,因此通常使干净的数据库重建成为changeSets的一小部分。重新定义索引通常是问题的重要部分,但其他事情也可以。观察更改设置需要一个日志时间,也许您可​​以找到一些相互取消或现在不需要但仍占用大部分时间的内容。

如果它最适合您从头开始,那么该过程与在现有项目中开始使用Liquibase基本相同。有关此选项的选项,请参阅http://www.liquibase.org/documentation/existing_project.html上的文档。

使用mysql,一个选项可能是使用mysqldump,然后使用<execute>使用一个changeSet来调用mysql restore shell命令。

对于现有的databasechangelog行,Liquibase将路径用作changeSet标识符的一部分,因此如果您的新changelog文件具有不同的名称或路径,Liquibase将已将changeSets视为新的。或者,您可以使用执行<changeSet>

delete from databasechangelog启动新的更改日志文件