如何阻止 Liquibase updateSQL 生成以 SQL 结尾的开始消息和成功消息?

How do I stop Liquibase updateSQL from generating Start and successful messages that end up in the SQL?

这个命令:

 liquibase --logLevel=off --changeLogFile=./database_change_log.xml --url='offline:postgresql?outputLiquibaseSql=true' updateSql > database_up.sql

生成这个:

Starting Liquibase at Thu, 14 Mar 2019 11:29:12 CDT (version 3.6.3 built at 2019-01-29 11:34:48)

-- *********************************************************************

-- Update Database Script

-- *********************************************************************

-- Change Log: ./database_change_log.xml

-- Ran at: 3/14/19, 11:29 AM
-- Against: null@offline:postgresql?outputLiquibaseSql=true
-- Liquibase version: 3.6.3
-- *********************************************************************

CREATE TABLE databasechangelog (ID VARCHAR(255) NOT NULL, AUTHOR VARCHAR(255) NOT NULL, FILENAME VARCHAR(255) NOT NULL, DATEEXECUTED TIMESTAMP WITHOUT TIME ZONE NOT NULL, ORDEREXECUTED INTEGER NOT NULL, EXECTYPE VARCHAR(10) NOT NULL, MD5SUM VARCHAR(35), DESCRIPTION VARCHAR(255), COMMENTS VARCHAR(255), TAG VARCHAR(255), LIQUIBASE VARCHAR(20), CONTEXTS VARCHAR(255), LABELS VARCHAR(255), DEPLOYMENT_ID VARCHAR(10));

-- Changeset ./database_change_log.xml::1::Jim Barrows

CREATE TABLE topic (id UUID NOT NULL, name VARCHAR(100) NOT NULL, description TEXT, CONSTRAINT TOPIC_PKEY PRIMARY KEY (id));

INSERT INTO databasechangelog (ID, AUTHOR, FILENAME, DATEEXECUTED, ORDEREXECUTED, MD5SUM, DESCRIPTION, COMMENTS, EXECTYPE, CONTEXTS, LABELS, LIQUIBASE, DEPLOYMENT_ID) VALUES ('1', 'Jim Barrows', './database_change_log.xml', NOW(), 1, '8:7b01de4dcdab4ed25f79ce192ba538f6', 'createTable tableName=topic', '', 'EXECUTED', NULL, NULL, '3.6.3', '2580954069');

Liquibase command 'updateSql' was executed successfully.

问题是我不想要 SQL 中的“Starting liquibase”或成功行。

注意:off 来自文档:--logLevel= 执行日志级别(调试、信息、警告、严重、关闭)。

我也试过使用“严重”和“错误”

这是3.6.3版本,3.5.3版本没有这个功能。我该如何解决这个问题?

有人已经为此打开了错误票:https://liquibase.jira.com/browse/CORE-3342

这个seemingly got introduced从版本3.6开始。

编辑:

所以也许降级或者更好地以拉取请求的形式提出修复。 :-)

想知道为什么 updateSQL 输出会用日志框架编写 我刚刚发现您可以将 migrationSqlOutputFile 作为参数传递,而不是将标准输出重定向到文件。这样,日志记录不应与 updateSQL 的输出混合在一起。

(虽然没试过。)

从 Liquibase 3.4.0 版本开始,您可以使用 outputFile 标志。详情在这里: https://www.liquibase.org/2015/07/without-a-connection.html

在 liquibase 命令中使用 --outputFile 选项将 sql 语句定向到文件。我使用 liquibase 版本 3.7.0,此选项有效。