Liquibase 如何标记 - 命令行

Posted

技术标签:

【中文标题】Liquibase 如何标记 - 命令行【英文标题】:How does Liquibase Tag - commandline 【发布时间】:2015-04-28 03:04:39 【问题描述】:

我能够使用 liquibase 命令行成功标记,但不知道它的标记和存储位置。命令执行成功,下面是tag命令的输入和响应。

这可能是一个非常微不足道的问题,但我找不到任何文档。我确实在它的工作区尝试过 - C:\liquibase-3.3.2-bin\sdk\workspace,在那里找不到任何东西。有人可以帮忙吗?

谢谢!

输入:

C:\liquibase-3.3.2-bin\liquibase.bat --driver=com.microsoft.sqlserver.jdbc.SQLServerDriver --classpath=C:\Microsoft_JDBC_Driver_SQL_Server\sqljdbc_4.1\enu\sqljdbc4.jar -- url="jdbc:sqlserver://DBServer:1433;databaseName=DBName" --username=DBUser --password=DBPassword --changeLogFile=D:\UDeployment\Liquibase\Stage\src\main\resources\db-changelog。 xml标签test_25022015

输出:

成功标记 DBUser@jdbc:sqlserver://DBServer:1433;authenticationScheme=nativeAuthentication;xopenStates=false;sendTimeAsDatetime=true;trustServerCertificate=false;sendStringParametersAsUnicode=true;selectMethod=direct;responseBuffering=adaptive;packetSize=8000;multiSubnetFailover=false;loginTimeout= 15;lockTimeout=-1;lastUpdateCount=true;encrypt=false;disableStatementPooling=true;databaseName=DBName;applicationName=Microsoft JDBC Driver for SQL Server;applicationIntent=readwrite; Liquibase 'tag' 成功

【问题讨论】:

【参考方案1】:

Liquibase 在您的数据库中创建两个表databasechangelogdatabasechangeloglock。数据库中执行的所有脚本都会将历史记录存储在databasechangelog 中。当您运行tag 进程时,此标记使用您在tag 列中发送的版本执行的最后一个脚本。

【讨论】:

感谢@Eddú Meléndez,我能够看到在此表中创建的标签。但是当我为同一张表重新运行标签时。假设第一个标签用于创建表格,第二个标签用于插入一些值。该标签已使用新值更新,但未创建新条目。 EXECTYPE 是“RERAN”而不是“EXECUTED”。我怎样才能同时拥有两个标签? 如果第一次迭代有 3 个脚本并运行 liquibase tag 任务,那么第三个脚本将被标记。如果您再添加 5 个脚本,然后再次运行 liquibase 标签任务,最后一个脚本(在本例中为 3 + 5 = 8)-脚本编号 8- 将被标记为新标签。 是否会再次为同一张表和dbchange日志创建标签?以下是我执行的步骤,但每次运行标记命令时标记都会被覆盖。 1) 创建一个表 2) 向表中插入 2 个值 3) 标记 4) 向同一个表中插入 2 个值 5) 尝试回滚 数据库更改日志 - 插入值 跨度> 您已经执行了 2 个脚本,第二个脚本被标记为 te 标记想象版本 1.0,然后您应用一个新脚本并最终执行回滚到版本 1.0。您的数据库应具有 1.0 版的状态。

以上是关于Liquibase 如何标记 - 命令行的主要内容,如果未能解决你的问题,请参考以下文章

如何在Docker命令行上的Docker注册表中找到具有特定标记的Docker镜像?

使用 PowerShell 到 FTP 来标记打印机 - 模仿命令行 FTP 命令

在生产环境中执行 liquibase 更新

清华尹成带你实战GO案例(45)Go 命令行参数标记

命令行 ImageMagick 装订线和裁剪标记

通过命令行Pandoc 来转换文件