这个问题可能看起来很愚蠢,但我找不到任何关于如何在 Play 2.0 中回滚进化的说明。谷歌只找到说进化文件的“Downs”部分用于此目的的页面,仅此而已。任何指针或说明将不胜感激。
问问题
4904 次
2 回答
24
Downs部分主要用于在脚本更改时恢复 Evolution 。也就是说,您有一个将2.sql应用于数据库的项目,然后,由于合并,源中的2.sql被修改。Play 将在旧版本上运行Downs,然后在新的 2.sql 上运行Ups,以确保数据库与代码库同步。
据我所知,没有办法自己触发Downs,因为 Evolution 的目的是准备数据库以使用您的代码,并且仅应用一个Downs步骤会使应用程序处于不一致的状态,并带有许多潜在的错误产生。
如果你真的需要恢复某些东西,那将是一个新的 Evolution (3.sql),Ups将在其中进行所需的更改。
于 2012-04-16T11:43:44.520 回答
6
对于 play 2.4.x,根据 play 文档,您只需要Evolutions.cleanupEvolutions(database)
在测试后调用。见这里https://www.playframework.com/documentation/2.4.x/ScalaTestingWithDatabases
于 2015-06-11T09:40:04.480 回答