我有一个现有的生产数据库,和一个有一些模式差异的开发数据库。以前也没有用过利基。如何做到以下几点:
发布于 2014-03-24 10:10:08
下面是我最后得到的结果($LIQUIBASE扩展到为我正在使用的特定DB配置的Liquibase命令行工具)。
根据生产DB的当前状态生成基准更改量:
$LIQUIBASE --url=$PROD_URL --changeLogFile=changeLog.xml generateChangeLog将生产记录为与更改日志同步:
$LIQUIBASE --url=$PROD_URL --changeLogFile=changeLog.xml changeLogSync计算开发和生产之间的差异,并将它们附加到更改日志文件中:
$LIQUIBASE --url=$PROD_URL --referenceUrl=$DEV_URL --changeLogFile=changeLog.xml diffChangeLog使生产与发展同步:
$LIQUIBASE --url=$PROD_URL --changeLogFile=changeLog.xml update将开发记录为与更改日志同步:
$LIQUIBASE --url=$DEV_URL --changeLogFile=changeLog.xml changeLogSync发布于 2014-03-21 13:38:08
首先,使用generateChangelog命令为开发数据库生成一个变更量,如下所示:changelogs.html
生成changelog时,Liquibase还将创建和初始化两个数据库表(DATABASECHANGELOG和DATABASECHANGELOGLOCK),它们用于跟踪应用于数据库的更改集。
接下来,您希望对这两个数据库进行区分,并让液化库使用diffChangelog命令:http://www.liquibase.org/documentation/diff.html生成不同的变化量。
可以按原样包含diff更改日志,也可以将其复制到现有的更改日志中。如果diff命令被传递给一个现有的更改日志文件,那么新的更改集将被追加到文件的末尾。
最后,将changelog部署到生产环境中。
发布于 2015-12-28 11:44:36
5.3本教程的一部分回答了你的问题。
http://www.baeldung.com/liquibase-refactor-schema-of-java-app
这在java中使用maven,但我认为普通的液化基命令也可以做到。
https://stackoverflow.com/questions/22546475
复制相似问题