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

Kra*_*tul 9 playframework playframework-evolutions playframework-2.2

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

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

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

nma*_*mat 0

不幸的是,我认为目前没有办法做到这一点。Play 只是迭代数据库并运行每个数据库的演化:

    dbApi.databases().foreach(runEvolutions)
Run Code Online (Sandbox Code Playgroud)

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

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