我有2个微服务(ms 1和ms 2)
在msone中,我使用flyway实现了db迁移。它正在按预期工作。i、 e:在应用程序启动时,所有新添加的sql脚本都会被触发,并使相关的db更新。另外,这个数据库中有一个表(permission),它有2列,类似于mstwo permission表。
例子: permission (id, permission_name, service_id, has_access, is_new)
在mstwo中,我有一个insert api,它将记录插入mstwo权限表中。此权限表中的记录类似于ms one权限表中的记录(少数列)。
例子: permission (id, permission_name)
现在,我的任务是,在服务器启动时,我应该检查msone权限表中是否有任何新条目,如果有,则使用insert api将这些id和name插入mstwo权限表。我有一个专栏,在那里我可以知道权限是否是新的,但是我想知道是否可以在flyway中调用不同微服务的api(在我的例子中,我想调用mstwo insert api来获得权限)。
1条答案
按热度按时间5m1hhzi41#
正如@faltfe所说,flyway在迁移的生命周期中暴露了一系列事件;你可能想打个电话给
afterMigrate
(在迁移结束时发生)或afterEachMigrate
(发生在每个脚本的末尾)。如果您打算调用另一个api,那么用java编写回调可能比用sql编写回调更容易—这里有一些示例:https://flywaydb.org/documentation/usage/api/hooks#callsbacks