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

使用Flyway自动迁移不同模式版本的数据库

苏健柏
2023-03-14

我认为留档(http://flywaydb.org/getstarted/existingDatabaseSetup.html)不够清楚,希望用一个例子来说明。我有一个给你:

假设我们有两个不同版本的生产数据库(1和2),其模式版本是隐式的,但通过查询现有表来确定。然后,我们将如何实现文档中描述的内容?

在我的例子中,两个版本都附加了一个脚本:版本1:创建表版本2:创建表

我已经创建了与版本1和版本2的脚本相匹配的java迁移文件,但由于flyway元数据缺失,我需要查询数据库脚本是否已运行,并在这种情况下跳过它们。问题是,由于Flyway尚未初始化,应用程序崩溃。

我不想从命令行初始化Flyway,因为我希望在部署时自动完成(嵌入式模式下的Flyway)。据我所见,这只适用于空数据库。这个问题有简单的解决办法吗?

共有1个答案

衡翰翮
2023-03-14

对于单PROD数据库,可以使用flyway。初始迁移率

在您的情况下,您必须通过检查表并使用flyway.initialVersion=1或flyway.initialVersion=2调用init,然后调用迁移来包装Flyway并手动重新创建此表。

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

  • 我正在尝试使用flyway,但是我有一个不知道如何解决的情况: 当我应用STANDARD脚本时,我必须运行V1.0__create_table_TAB1.sql当我将脚本应用到customer1时,TAB1表是一个视图,因此我必须运行V1.0__creaate_view_TAB1_to_schema1.sql。 实际: 应始终应用sql_common文件夹的脚本,但不应应用 V1.0(创建表 TA

  • 我正在flyway的CMD中运行命令,但脚本文件的迁移会出现以下异常 [错误]无法执行目标组织。flywaydb:flyway maven插件:3.2.1:在convertopia auto db:org项目上迁移(默认cli)。flywaydb。果心应用程序编程接口。FlywayException:验证失败。迁移1.0.53的迁移描述不匹配[错误]- 我尝试过,它说构建成功,但问题仍然没有解决。

  • 本文向大家介绍SpringBoot集成Flyway进行数据库版本迁移管理的步骤,包括了SpringBoot集成Flyway进行数据库版本迁移管理的步骤的使用技巧和注意事项,需要的朋友参考一下 Flyway简介 Flyway中的迁移(migrations)模式 Flyway对数据库的所有更改都称为 migrations(迁移) 。 migrations(迁移) 分为版本控制(Versioned)迁移

  • Flyway FAQ将多个模式分为三种情况: 多个相同的模式 模式是不同的,但有相同的生命周期 模式有一个独特的生命周期,或者必须是独立的和干净的分离 我们正在使用Maven构建一个多模块SpringBoot4.5.9项目。每个模块都是完全独立的,并且有自己的数据库模式。所有模式都驻留在一个数据库中,因此只有一个Spring数据源。 由于模块是独立的,我们希望分别管理它们各自的模式迁移,因此上面的

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