Scala 播放:是否将某些表排除在evolutions管理之外?

Scala 播放:是否将某些表排除在evolutions管理之外?,scala,playframework,playframework-2.2,playframework-2.3,playframework-evolutions,Scala,Playframework,Playframework 2.2,Playframework 2.3,Playframework Evolutions,我有一个基于MySQL实例的Scala Play应用程序。我将我的演进存储为conf/evolutions/$db/$step.sql文件。但是,我的一些表是动态的,即它们的模式可能会在Play应用程序运行时被修改。从Play的演进框架中排除这些表的最佳方式是什么 我有两种选择,但没有一种看起来特别优雅: 1) 将所有有问题的表移动到一个单独的数据库中,在该数据库中evolutions插件被禁用-这不是很好,因为我必须将所有具有外键约束的相关表也移出当前数据库 2) 以某种方式覆盖了Play的进

我有一个基于MySQL实例的Scala Play应用程序。我将我的演进存储为
conf/evolutions/$db/$step.sql
文件。但是,我的一些表是动态的,即它们的模式可能会在Play应用程序运行时被修改。从Play的演进框架中排除这些表的最佳方式是什么

我有两种选择,但没有一种看起来特别优雅:

1) 将所有有问题的表移动到一个单独的数据库中,在该数据库中evolutions插件被禁用-这不是很好,因为我必须将所有具有外键约束的相关表也移出当前数据库

2) 以某种方式覆盖了Play的进化框架——不幸的是,Play的进化框架既不是模块化的,也不是可扩展的。我希望它能为
def onUp(tableName:String)
def onDown(tableName:String)
提供一些Scala或Java挂钩,我可以覆盖这些挂钩,但Play的evolutions框架似乎没有这么好的抽象,而且非常单一

3) 我知道Play在一个名为
Play\u evolutions
的表中创建了一个条目-我可以在
onStart
中从我的应用程序中修改该表,手动删除所有与表相关的内容。这会起作用,但非常粗糙,并且很难依赖于Play对模式更改的内部表示/处理

4) 只需将所有有问题的表sql语句移动到
conf/evolutions/$db/ignore\u evolution\u$step.sql
——这样一来,这些表就脱离了evolutions框架的监视,但我必须运行自己的框架来解析这些文件并执行它们


5) 还有什么我遗漏的吗?

或者使用不同的进化库,例如?