在多个数据库上排序播放演变

时间:2014-02-11 00:51:45

标签: playframework playframework-2.2 playframework-evolutions

我有一个环境,我正在使用多个数据库(A和B),每个数据库都有不同的演变集,因此完全成功。但是,始终首先应用一组数据库演进,B数据库的所有演进都应用于A数据库的任何演进之前。

我们正在做一些重大的重组,这导致一些跨数据库查询将数据库B移到未来,但由于数据库B的演变首先运行,数据库A的更改尚未发生,进化失败。

有没有办法改变/优先考虑使用不同演变集在多个数据库之间应用数据库演变的顺序?

1 个答案:

答案 0 :(得分:0)

不幸的是,我认为目前还没有办法做到这一点。简单地玩iterates over the databases并为每个人进行演变:

    dbApi.databases().foreach(runEvolutions)

数据库序列来自配置Map,因此您无法保证其读取顺序。

我认为您最好的选择是以多个步骤运行演变而不会在每个步骤之间进行重大更改。迁移完成后,您需要进行另一次演变以清理已移动的列/表。