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

Flyway条件数据库迁移

习高格
2023-03-14

我正在尝试使用flyway,但是我有一个不知道如何解决的情况:

当我应用STANDARD脚本时,我必须运行V1.0__create_table_TAB1.sql当我将脚本应用到customer1时,TAB1表是一个视图,因此我必须运行V1.0__creaate_view_TAB1_to_schema1.sql。

实际:

└── sql
     ├── sql_common
     │   ├── V0.0 __.... sql
     │   └── V1.0__create_table_TAB1.sql
     ├── sql_customer1
     │   └── V1.0__create_view_TAB1_to_schema1.sql
     └── sql_customer2
         └── V1.0__create_view_TAB1_to_schema2.sql

应始终应用sql_common文件夹的脚本,但不应应用 V1.0(创建表 TAB1)(如果我应用于 customer1 脚本)。取而代之的是V1.0__create_view_TAB1_to_schema1.sql

我如何处理这种情况?

共有1个答案

马华茂
2023-03-14

使用以下结构:

└── sql
     ├── sql_common
     │   └── V0.0 __.... sql
     ├── sql_regular
     │   └── V1.0__create_table_TAB1.sql
     ├── sql_customer1
     │   └── V1.0__create_view_TAB1_to_schema1.sql
     └── sql_customer2
         └── V1.0__create_view_TAB1_to_schema2.sql

结合Flyway.setLocations()。

  • 常规:<code>飞行路线。setLocations(“filesystem:sql/sql_common”,“filesystems:sql/sql _regular”)
  • customer1:<code>飞行路线。setLocations(“filesystem:sql/sql_common”,“filesystems:sql/sqlcustomer1”)
  • customer2:<code>飞行路线。setLocations(“filesystem:sql/sql_common”,“filesystems:sql/sql-customer2”)

这样,每个案例中只有1次1.0版的迁移。

 类似资料:
  • 我正在尝试配置Spring Boot和Flyway,以便使用Spring Boot 2.2.6和Flyway 5.2.3对两个不同的数据源应用单独的迁移。 主要数据源: 第二个数据源: 数据源连接属性: Flyway迁移: 目录结构: 迁移脚本仅正确应用于数据库。 问题是,和中的脚本被应用到数据库,而只应用主目录中的脚本。 如何配置Flyway以仅将目录中的迁移脚本应用于数据库?

  • 问题内容: 我对ES非常陌生。我一直在尝试搜索数据库迁移工具,但找不到。我想知道是否有人可以帮助我指出正确的方向。 我将使用Elasticsearch作为项目中的主要数据存储。我想对我在项目中开发新模块时运行的所有映射和配置更改/数据导入/数据升级脚本进行版本控制。 过去,我使用过数据库版本控制工具,例如Flyway或Liquibase。 我可以在ES中使用任何框架/脚本或方法来实现类似目的吗?

  • 我对ES很陌生。我一直在寻找数据库迁移工具,但找不到。我想知道是否有人能帮我指出正确的方向。 我会使用 Elasticsearch 作为项目中的主数据存储。我想对所有映射和配置更改/数据导入/数据升级脚本进行版本控制,这些脚本是我在项目中开发新模块时运行的。 过去,我使用Flyway或Liquibase等数据库版本控制工具。 有没有任何框架/脚本或方法可以与ES一起使用来实现类似的目标? 有没有人

  • 当impl jar的时,我收到了这个错误 org.springframework.beans.factory.beanCreationException:创建类路径资源[org/springframework/boot/autocigure/flyway/flywayautociguration$flywayconfiguration.class]中定义的名为“flyway初始化器”的bean时出

  • 我正在使用Flyway更新DB模式。当前,模式的最新版本是3(最新的迁移文件名为)。 我是否正确理解了参数,还是遗漏了什么? 注意:我知道自Spring Boot2以来,参数名称空间已经更改为,但我使用的是Spring Boot1,所以这不是问题。

  • 问题内容: 我正在使用Java开发数据库迁移工具。该工具将数据库表及其数据复制到目标数据库。但是我希望它可以在不同的数据库上工作。从mysql复制并在derby等中创建。使用JDBC,我们可以收集有关表及其列的足够信息。但是我要问的是,是否可以使用sql free在Java上重新创建表。我的意思是不同的数据库具有不同的数据类型,有时它们在sql语法上也有所不同。那么JDBC或任何其他库(可以是开放