Liquibase diffChangeLog不报告存储过程

问题描述

我是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)。