问题描述
我是Liquibase的新手。我正在使用Liquibase 4.0版和Windows 10家庭版
Starting Liquibase at 23:08:42 (version 4.0.0 #19 built at 2020-07-13 19:45+0000)
Liquibase Version: 4.0.0
Liquibase Community 4.0.0 by Datical
我向DATABASEONE
添加了一个表和SP。我还生成了两个数据库之间的差异,并且工作正常。
liquibase diffChangeLog
liquibase.properties
driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
classpath=../mssql-jdbc-8.4.0.jre11.jar
url=jdbc:sqlserver://localhost;databaseName=DATABASETWO
username=sa
password=Password123
referenceUrl=jdbc:sqlserver://localhost;databaseName=DATABASEONE
referenceUsername=sa
referencePassword=Password123
changeLogFile=diff.xml
但是,Liquibase不会报告存储过程的差异。
如何获取diffChangeLog
中新添加的(或)缺少的存储过程信息?
编辑
我使用了Pro License Key(14天试用版)来生成存储过程的差异
我还生成了liquibase updateSQL > update.sql
。现在,我想对另一个数据库运行“ update.sql”。我该怎么办?
解决方法
在生成了命令liquibase updateSQL的update.sql上运行更新> update.sql将返回额外的信息,即调试信息。不只是简单的SQL。您将要:
- 使用generateChangelog生成一个变更日志文件(我们将其称为change.postgresql.xml)
- 使用上面生成的changelog文件和目标数据库的URL运行liuqibase更新
注意,如果它们是不同的数据库平台,例如来自postgres-> mysql的数据库,那么您将必须查看目标数据库的非规范db对象的生成变更日志(在本例中为change.postgresql.xml)。此示例为mysql)。