liquibase databasechangelog table 在 updateSql 模式

liquibase databasechangelog table in updateSql mode

当我从更改日志文件中生成 SQL 文件时,数据库更改日志 table 被创建为 CSV 文件,位于与生成的 SQL 文件相同的文件夹中,但我想要它作为我的 SQL 文件中的 table。我使用 liquibase 3.5.5。通过命令行并使用此命令:

 .\liquibase --url=offline:mssql? `
--changeLogFile="C:\Users\Ferid\Documents\Box Sync\PRIVATE_Ferid\liquibase-3.5.5-bin\Changelog.xml" `
--outputFile="C:\Users\Ferid\Documents\Box Sync\PRIVATE_Ferid\liquibase-3.5.5-bin\all.sql" `
updatesql

我没有在 SQL 文件中找到集成数据库变更日志 table 的命令。它仅在我使用 update 语句而不是 updatesql 时集成,但我需要 SQL 文件。

您需要将您正在使用的URL更改为非离线版本。

有一种方法可以通过在 url

中使用 outputLiquibaseSql 参数来包含数据库更改日志 table
.\liquibase --url=offline:mssql?outputLiquibaseSql=true `
--changeLogFile="C:\Users\Ferid\Documents\Box Sync\PRIVATE_Ferid\liquibase-3.5.5-bin\Changelog.xml" `
--outputFile="C:\Users\Ferid\Documents\Box Sync\PRIVATE_Ferid\liquibase-3.5.5-bin\all.sql" `
updatesql

这有时会导致 CMD 或 PowerShell 出现问题(由于问号),因此将其包含在 liquibase.properties 文件中会有所帮助。