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

使用飞行方式迁移存储过程

夏侯浩气
2023-03-14

应该如何使用像Flyway这样的数据库迁移工具来管理像存储过程这样的过程数据库代码?

与DDL不同,我不希望看到存储在多个数据库迁移文件中的存储过程发生变化。如何在源代码控制下在单个文件中管理过程代码,同时利用Flyway这样的工具进行数据库迁移?

共有2个答案

姚浩歌
2023-03-14

我们所做的是:

  1. 每当存储过程发生更改时,都有一个完整的CREATE OR REPLACE Flyway脚本。
  2. 将每个存储过程存储在源代码控制中的单独区域中,以便跟踪更改并计算差异。

这不是一个很好的解决方案,每次都很难记住,但它克服了该工具的一些限制。

殳毅
2023-03-14

框架中没有特殊的结构来处理这个问题。主要是我还没有想出一个让我高兴的方法来做这件事。

更新:从 Flyway 4.0 开始,现在完全支持可重复的脚本。请参阅 https://flywaydb.org/documentation/migrations#repeatable-migrations

 类似资料:
  • 我们正在使用Flyway在我们的测试环境中使用sql脚本保持最新的许多数据库,并且它工作正常。但是我们特别需要使用csv文件更新数据库。我知道Flyway提供了一些基于Java的迁移来处理更复杂的更新。但问题是,这些 Java 类的名称中都有所需的版本,这将迫使我们在每次使用该类时重新编译该类。如果我们能像对待sql文件一样将csv文件放在迁移目录中,那将更加简单。然后,一些特定的Java代码将处

  • 我们有许多项目在许多服务器上运行,查找一个数据库,我们正在考虑为每个项目设置Flyway以控制我们的数据库结构。 但是,如果某些项目同时重新部署,我们担心并发迁移问题。(顺便说一句,我们总是在sql语法中照顾“如果存在”的事情) Flyway如何在同一数据表或其他结构发生并发更改时工作?

  • 我在雪花上做POC,探索这个产品。 我有一个问题:在SQL Server中,我们有400-500个存储过程,这些存储过程是从SSRS报告调用的。这些存储过程本质上很简单,如下所示:

  • 我们使用Liquibase,现在在新项目中,我们必须使用Flyway。在liquibase中,迁移顺序在xml文件中,所以您可以指定什么是第一次迁移,什么是第二次迁移,它不依赖于名称。 所以,当一些开发人员添加新的迁移时,如果之前有人推动了新的迁移,那么他将在Git中遇到冲突,并且必须修复顺序。 这是如何在Flyway中实现的?如果并行添加迁移,如何控制顺序?

  • 我有一个多模块Spring Boot应用程序(为了简单起见,它只是moduleA和moduleB)。两个模块都访问同一数据库。此外,我使用flyway初始化表并将初始数据填充到DB。 当我使用飞行路线的命名模式时,我遇到了一个问题: <code>V1_0__init。moduleA中的sql与。 我知道我可以将其中一个文件重命名为,它是有效的。但是这个想法是模块可以共存,而不知道迁移脚本在另一个模

  • 在类路径中:/db。迁移有迁移但flyway没有看到这一点,而是爱上了msg 2022-05-02 17:28:07.993INFO 45296 --- [ restartedMain]c. c. c. ConfigServiceProperty tySourceLocator:从服务器获取配置,地址为:http://localhost:8888/story2022-05-02 17:28:08.