java - Springboot中Flyway时的Java API调用
问题描述
我有 2 个微服务(ms-one 和 ms-two)
在ms-one中,我使用 flyway 实现了数据库迁移。它正在按预期工作。即:在应用程序启动时,我所有新添加的 SQL 脚本都会被触发,并使相关的数据库保持最新。此外,该数据库中有一个表(权限),它有 2 列类似于 ms-2 权限表。
例子:
permission (id, permission_name, service_id, has_access, is_new)
在ms-two中,我有一个插入 API,它在 ms-two 权限表中插入记录。此权限表中的记录类似于 ms-one 权限表中的记录(几列)。
例子:
permission (id, permission_name)
现在,我的任务是,在服务器启动时,我应该检查 ms-one 权限表中是否有任何新条目,如果是,则使用INSERT API 在 ms-2 权限表中插入这些 ID 和 NAME。我有一个专栏,我可以知道权限是否是新的,但想知道是否可以在 flyway 中调用不同微服务的 API(在我的情况下,我想调用 ms-two INSERT API 以获得权限) .
解决方案
正如@FaltFe 所说,Flyway 在迁移的生命周期中暴露了一系列事件;您可能希望将回调挂接到afterMigrate
(在迁移结束时发生)或afterEachMigrate
(在每个脚本结束时发生)。
如果您打算调用另一个 API,用 Java 而不是 SQL 编写回调可能更容易 - 这里有示例:https ://flywaydb.org/documentation/usage/api/hooks#callsbacks
推荐阅读
- r - 在 R 中查找函数
- django - Django - 保持用户的最新记录
- flutter - 单击它时显示更大的照片
- node.js - TypeError:无法读取未定义的属性“任务”
- flutter - Flutter : Release 版本产生问题
- android-layout - GridLayout、GridView、RecyclerView... 用于 2x8 和 4x8 网格
- arrays - 参数数组上的 VBA6 类型不匹配
- docker - 在 Docker 中安装 Rcpp 包会导致安装过程中冻结
- c# - ASP.Net Core MVC FormForm 方法接收空值
- java - 将代码上传到 STM32 时的 EXCEPTION_ACCESS_VIOLATION