1/1: add table1 => 1.0
1/10: add table2
1/18: alter table1 => 2.0
1/21: alter table2
1/28: add table3 => 3.0
[Update]感谢Mark的回复,我在我们的开发环境中添加了上述变更集的版本。当我们的生产数据库是1.0的,我想直接升级到2.0(或3.0),但只想使用liquibase生成SQL命令并手动运行它。
回滚有一个问题,如果我回滚我的开发数据库,我需要重新创建已经在上面的数据。对此有什么建议吗?
我建议阅读命令行文档。
要根据日期生成SQL,我认为唯一可以做到的方法如下:
liquibase rollbackToDate <date/time>
liquibase tag <version so can rollback here again>
liquibase updateSQL > keepUpdate.sql
liquibase update
您尝试做的(使用SQL更新产品)是liquibase设计用来支持的一个常见用例。这是我最喜欢的特色之一。
运行SQL查询并确定开发DB上有多少ChangSet:
SELECT ORDEREXECUTED, DATEEXECUTED, ID, FILENAME, DESCRIPTION, COMMENTS
FROM DATABASECHANGELOG
ORDER BY ORDEREXECUTED
分析日期并确定从3.0版本到2.0版本(2个变更集)和1.0版本(4个变更集)的chnaGeset数量
创建一个新的数据库并应用您的liquibase变更集,将您的模式升级到版本3.0
liquibase update
liquibase rollbackCount 2
liquibase updateSQL > upgrade-2_0-3_0.sql
liquibase futureRollbackSQL > rollback-2_0-3_0.sql
liquibase rollbackCount 2
liquibase updateSQL > upgrade-1_0-3_0.sql
liquibase futureRollbackSQL > rollback-1_0-3_0.sql
另一个真正有用的数据库管理工具是dbunit
下面的文章解释了如何将liquibase和dbunit一起用于迁移数据库:
我正在LiquiBase中运行Java代码变更集。但是我遇到了这个问题,我得到了ClassNotFoundException,我四处搜索了一下,但是没有找到任何有用的东西。在这个环节上的一些研究是有用的。我使用的是Liquibase-Core-2.0.1。
问题内容: 假设我有2011年1月3日,我想在一周的第一天,也就是星期天,那是2011年1月2日,我该怎么做? 原因是我有此查询: 是的,我意识到起源拼写错误,但是在此之前我就在这里,因此由于太多内部应用程序引用了它,因此我无法对其进行更正。 因此,我按周分组,但我希望以此填充我的图表,所以我不能让所有的周初看起来都像不同的日期。我该如何解决? 问题答案: 如果您需要处理从星期一开始的几周,也可以
问题内容: 我正在尝试获取本周星期一的日期。在我的表格视图中,这被视为一周的第一天。我还需要获取当前一周的星期日。在我的表格视图中,这被视为一周的最后一天。 当前尝试: 问题答案: 我写了Date扩展名以获取某个工作日的Date,这就是在Swift 5中使用它的简便性 这是日期扩展,
我的程序中有这5个按钮:星期一、星期二、星期三、星期四和星期五,它们在我的菜单屏幕上。我现在想要的是,当我的程序启动和我的菜单屏幕打开时,按钮包含的日子+一天的日期。 例如,今天我们是5月4日(星球大战快乐日!)按钮应该是这样的: 星期一04/30星期二05/01星期三05/02星期四05/03星期五05/04 但是当我打开下个星期一的菜单屏幕时,它应该是这样的:星期一05/07星期二05/08星
问题内容: 我对和的内存成本感到好奇,因此我编写了一个程序来比较大小。我通过获得内存大小,但是显然这是错误的,因为当我更改大小时,输出是相同的。 问题答案: 并且仅返回传递值的大小,而无需递归遍历数据结构和添加指针值的大小。 slice是相对简单的结构:,并且由于我们知道它引用了后备数组,因此我们可以轻松地“手动”计算其大小,例如: 输出(在Go Playground上尝试): 地图是更复杂的数据
问题内容: 在Linux中,如何获取URL并在shell脚本的变量中获取其内容? 问题答案: 您可以使用命令下载页面并将其读取为变量,如下所示: 我们使用的选项允许我们指定将页面内容转储到的文件的名称。我们指定将转储放入标准输出并将其收集到变量中。您可以添加安静选项以关闭wget输出。 您还可以为此使用curl命令: 我们需要使用该选项,因为我们请求的页面可能已经移动。在这种情况下,我们需要从新位