当前位置: 首页 > 知识库问答 >
问题:

Liquibase:UPDATE脚本(当数据库中已经实现了一些更改时)

凌钊
2023-03-14

好的,问题可能出在我的液化方法中,我在数据库端实现了一些更改,我想创建变更集,所以我只需向变更集添加一个新的sql文件。当我尝试运行luquibase update命令时,我得到一个错误,它告诉我数据库中存在一些列。

对于我来说,在创建变更集脚本之前,我尝试在数据库中添加列(即使用PhpMyAdmin)是正常的。然后,我想与其他开发人员共享这些更改,所以我(从我的更改中)生成sql,将其添加到sql文件中,并在更改集中启动该文件。有人能告诉我我做错了什么吗?

当我向mysql表中添加一些新列时,我使用alter\U table脚本创建了sql文件,然后运行liquibase update命令,这个问题与这种情况有关。

共有2个答案

经博延
2023-03-14

虽然最好先用Liquibase完成对数据库的所有更改,但在某些情况下这是不可能的。一个是您描述的用例。另一种情况是,如果热修复程序应用于生产,需要合并回开发。

如果您确定您的变更集已应用于环境,那么请考虑运行changelogSync。它将断言所有变更集都已应用,并将使用适当的信息更新Liquibase元表。

虽然并不理想,但我们认为,有时生活并没有像我们希望的那样进展,现实世界的应用程序需要更改同步。这就是为什么我们确保在Datical DB中清楚地公开它。我们认为它在现实和理想主义之间取得了平衡。

空翼
2023-03-14

不要在数据库中进行手动更新。所有模式更改都必须使用liquibase完成,否则——就像您的情况一样——您的更改集将与现有模式冲突。

 类似资料:
  • 本文向大家介绍Python 实现数据库更新脚本的生成方法,包括了Python 实现数据库更新脚本的生成方法的使用技巧和注意事项,需要的朋友参考一下 我在工作的时候,在测试环境下使用的数据库跟生产环境的数据库不一致,当我们的测试环境下的数据库完成测试准备更新到生产环境上的数据库时候,需要准备更新脚本,真是一不小心没记下来就会忘了改了哪里,哪里添加了什么,这个真是非常让人头疼。因此我就试着用Pytho

  • 本文向大家介绍Python 实现数据库(SQL)更新脚本的生成方法,包括了Python 实现数据库(SQL)更新脚本的生成方法的使用技巧和注意事项,需要的朋友参考一下 我在工作的时候,在测试环境下使用的数据库跟生产环境的数据库不一致,当我们的测试环境下的数据库完成测试准备更新到生产环境上的数据库时候,需要准备更新脚本,真是一不小心没记下来就会忘了改了哪里,哪里添加了什么,这个真是非常让人头疼。因此

  • 问题内容: 我有一个奇怪的问题,这是我以前从未经历过的。我使用实体框架检索我的记录。 我有以下电话: 我希望此调用不会缓存。因此,当我进行此调用时,我希望它可以查询数据库并检索最新的对象。但是,事实并非如此。 我称此方法为相距相对较短时间的相对两倍(约5-10秒)。但是在此期间,该表中的十进制值可以由某些第三方更改。 但是,即使值更改,该调用也会检索未更新的版本。 情况示例 : 我拨打电话,看到该

  • 我现在正在开发一个系统,该系统将表的主键定义为“int”,这个主键有一个规则序列:“yearmonthmonth”6个数字。例如:“2105000001”,但“22”(2022)的年份没有被预测,或者,如果我将序列的这种模式调整到当前年份,它将给出一个错误,因为它超过了最大值。质疑:这个系统非常庞大,在java、postgresql数据库中,切换到Long的利弊是什么?它会对数据库性能产生类似的影

  • 我有一个Gradle脚本,它使用flyway插件来创建一些数据库表,现在我需要更新该脚本,以便它可以与两组单独的flyway脚本一起工作,每个脚本更新一个单独的数据库。 在单数据库版本的脚本中,我只是这样做: 我一直在尝试声明一个新任务来运行第二个数据库的脚本: 我的Gradle技能很差,但我知道这不是正确的方法——我的理解是块会覆盖原始flyway配置,所以如果我想在之后运行,它会继续使用第二组

  • 问题内容: 我有一个与MySQL数据库的Java程序连接,如何在同一连接上将当前数据库更改为另一个数据库? 我这样连接到MySQL: 经过一些操作后,我想在同一连接上连接到另一个mysql数据库。我怎样才能做到这一点? 我尝试使用: 但这不会更改要使用的数据库。 问题答案: 如MySQL文档中所述,您需要用于切换到另一个数据库。这也明确地说,你应该 不 执行切换。 发出此警告的原因是JDBC是数据