9

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

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

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

4

1 回答 1

0

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

    dbApi.databases().foreach(runEvolutions)

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

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

于 2016-04-17T20:44:40.570 回答