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

Flyway:如何在版本化迁移之前运行某些可重复的迁移?

邬浩涆
2023-03-14

Flyway在其留档中说明了可重复迁移的一些用法:

用法:(重新)创建视图/过程/函数/包/...

我想在可重复迁移中创建一些触发器/函数,这些稍后会在版本迁移中引用,并应用到表中。

Flyway最后运行可重复的迁移,这意味着触发器在被引用时不存在。

是否可以在版本化迁移之前运行某些可重复的迁移?

是否不支持此用例,因为自动更新应用于表的触发器是不好的做法?

共有1个答案

郎言
2023-03-14

我认为不可能调用重复的迁移脚本first.But您可以使用回调脚本。请在此处阅读。

因此,您可以在迁移之前创建一个名为<code>的脚本。sql,并使用它初始化所需内容。

虽然我不明白,但为什么不在版本化迁移完成后重新创建触发器呢?如果你有临时(短寿命)对象,比如一些触发器,在我看来是正确的,将它们绑定到它们被声明的同一脚本中的永久对象 - 我的意思是在重复的迁移脚本中。

 类似资料:
  • 在使用可重复迁移时,我观察到一些奇怪的飞行路线行为。文件指出: 在一次迁移运行中,可重复迁移始终在所有挂起的版本化迁移执行完毕后最后应用。 但在我的例子中,可重复迁移(正在重新创建一个DB视图)似乎失败了,因为它是在版本化迁移之前执行的。 迁移前的Flyway信息数据:

  • 报价飞行路线文件https://flywaydb.org/documentation/migration/repeatable : 可重复迁移没有版本。相反,每次校验和更改时,都会(重新)应用它们。 这对于管理数据库对象非常有用,这些对象的定义可以简单地在版本控制中的单个文件中维护。 在一次迁移运行中,可重复迁移始终在所有挂起的版本化迁移执行完毕后最后应用。可重复迁移按其描述的顺序应用。 这听起来

  • 我们正在尝试将迁移作为.sql文件置于版本控制之下。开发人员将编写一个vn__*.sql文件,提交到版本控制,并且每5分钟运行一次的作业将自动迁移到开发和测试数据库。一旦更改被证明没有引起问题,其他人就会运行一个手动作业来在生产上运行迁移。 我的问题: 我有一个演示迁移,创建了几个表。我将v4__demotable.sql检查到PC上的版本控制中。 阅读文档时,开发人员似乎建议我应该创建一个新的v

  • 我想使用 Flyway 获取特定数据库的最新架构版本值。Flyway 中是否有函数可以在命令行中获取当前架构版本号? 我可以运行以下命令: 这为我提供了数据库的整个架构内容(缩短),如下所示: 我只对最后一个架构条目版本“1.5.9”值感兴趣。 我的环境如下: < li>Windows 7 < li>Flyway 3.0

  • 在Spring启动应用程序中,我们在db.migrations资源文件夹中设置了版本化迁移 V1_0__create_table.sql V1_1__apply_roles.sql R__create_stored_proc.sql 版本化迁移(V1\u 0和V1\u 1)在应用程序启动时运行/验证,但似乎根本不会触发可重复迁移(R\u)。 我们有一个后迁移。sql,这似乎是触发的。 有人能帮我理

  • 在我的spring-boot项目中,我使用了Flyway的开箱即用集成(),并且有一些迁移脚本,它们在启动时执行,并通过默认的-table进行管理。 该项目还使用了一个自带flyway迁移脚本的模块,这些脚本是以编程方式迁移的,并在其他表中跟踪迁移情况。 由于主项目的迁移需要对通过模块迁移创建的一些表进行操作,因此模块迁移需要在flyway-plugin迁移主项目脚本之前进行。 如何在主要应用的F