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

Flyway可以执行不被视为迁移的SQL脚本吗?

薛欣德
2023-03-14

我们希望使用Flyway进行数据库迁移。除了迁移脚本之外,我们还需要执行一些不应被视为迁移的脚本(并且不需要在schema_version表中跟踪)。例如,执行包含配置数据或仅与开发环境相关的测试数据的脚本。我们仍然希望使用flyway-maven-plugin来执行这些SQL脚本,而不是在我的flyway-maven-plugin之前/之后运行的不同maven插件。

对于flyway的迁移前和迁移后脚本,也提出了类似的问题。如果实现了此功能,它也可以满足我们的需要。

共有2个答案

屠德宇
2023-03-14

对于必须在数据库中的系统数据,例如查找表,这些数据可以由正常的迁移脚本处理。原因是它们与数据库结构和应用程序代码密切相关。您可以使用命名约定轻松区分系统数据脚本和DDL脚本。

对于测试数据,您可能需要考虑使用flyway测试扩展。

颛孙英才
2023-03-14

借助Flyway对从多个位置加载脚本的支持,您可以进行配置,使其仅在某些环境中加载一组引用或测试数据,而不在其他环境中加载。

您必须为这些脚本提供一个版本,但这不应该是一个太大的问题,因为它们取决于存在的底层DB结构。

 类似资料:
  • 我在一株嵌入的野花上做了阿奎利亚测试。尽管所有移植脚本、集成器类(flyway在其中安装)和所有FlyWay包(来自POM文件)都包含在。war文件(部署在嵌入式wildfly上),不进行迁移。 这有什么原因吗?这是原则上不起作用还是我错过了什么? 我喜欢实现的是,arquillian运行的自动测试将设置一个内存数据库,其方案与使用相同迁移脚本的生产数据库相同。 编辑:正如ytg下面所问的,我添加

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

  • 我想将这个Spring属性文件用于数据库配置。 代码运行良好,但不幸的是,当删除所有表后数据库为空时,我会收到SQL错误,因为首先执行迁移脚本。 如何先配置 JPA 以创建表,然后再执行迁移脚本?

  • 在该项目中,我们使用Flyway迁移工具来开发数据库模式以及这些脚本的git历史。 这个想法是每个脚本编号都以number为前缀,增加值10,然后是名称,例如: 0000_name_one。sql 0010_name_two。sql 0020_name_tree.sql 等 但是,由于我们必须开始处理多个分支(例如,两个主要分支是:主master_ext),再加上我们有一些用于耗时功能的开发分支

  • 我用试用密钥尝试了State/BaselineMigration功能。https://flywaydb.org/documentation/concepts/baselinemigrationsFlyWay迁移执行脚本并正确移动到正确的版本。但在此基础上运行的所有迁移都失败了 从S开始2__xxx.sql然后它在版本2的模式表中创建一行并键入"SQL_STATE_SCRIPT" 再次执行flywa

  • 我当前的项目有几个Flyway迁移,用于将初始数据导入数据库。这个数据是方便的,特别是对于开发人员能够快速设置项目。生产数据通过一些批处理作业导入,具有较新的版本。 其中有些迁移相当大(~20MB),因此每次应用程序启动时,Flyway都要花费一些时间来计算迁移的校验和。这也是集成测试的一个问题,因为它们也需要更长的时间。 null 我还有什么其他选择?如果可能的话,我希望使用Flyway而不是手