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

时间:2019-03-14 16:40:37

标签: postgresql liquibase

此命令:

 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”或成功行。

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

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

这是版本3.6.3,而版本3.5.3则不这样做。我该如何解决?

3 个答案:

答案 0 :(得分:1)

有人为此打开了一个故障单:https://liquibase.jira.com/browse/CORE-3342

seemingly got introduced从3.6版开始。

编辑:

所以也许降级甚至更好地以请求请求的形式提出修复。 :-)

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

(虽然还没有尝试过。)

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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