如何禁用一个数据库的进化
Posted
技术标签:
【中文标题】如何禁用一个数据库的进化【英文标题】:How to disable evolutions for one database 【发布时间】:2015-01-14 12:55:53 【问题描述】:我有两个通过 ebean 连接的数据库的 play-java 项目。第一个数据库由进化管理,第二个数据库仅用于只读,我无权对其进行任何更新。 所以我必须只为一个,第二个数据库禁用进化。
目前我花了一些时间并没有找到解决方案,只有来自 stackoveflow 的误导性建议和来自 github 站点上的 playframework 问题 cummunication 列表的混淆。据我了解,此功能将在新的尚未发布的 playframework 2.4 版中可用。
我只是想知道这里应该有某种解决方法,但我找不到任何解决方法。我有炙手可热的新功能请求,但没有找到解决方法。
我看到的相关问题很少,但这些问题已经很老了。我希望从那时起有所改变。
问候 雷米斯B
【问题讨论】:
你见过这个 - github.com/sclasen/play-extras 特别是 - github.com/sclasen/play-extras/blob/master/src/main/scala/com/… 它允许你禁用特定的数据库。 【参考方案1】:Play Extras 能够应用增强的进化插件,并且可以与 Play 2.0 应用程序一起使用。
增强的 Evolutions 插件可以锁定,因此您的测功机不会互相踩踏(即将在 Play 中)并启用/禁用每个 db 的进化。
您可以通过在构建文件中添加以下内容来添加插件
val extras = RootProject(uri("git://github.com/sclasen/play-extras.git"))
val main = PlayProject(appName, appVersion, appDependencies, mainLang = SCALA, settings = Defaults.defaultSettings ++ buildSettings).dependsOn(extras)
您需要禁用 Play 中的默认进化插件。
evolutionplugin=disabled
更多关于如何使用进化插件的信息可以在here找到。
【讨论】:
哦,我看到 Play Extra 正在使用 Scala Anorm 进行 Db 访问,但这对我的项目不起作用,因为它使用 Ebean 进行数据访问并且构建在 play java 之上。感谢@nbz 的回答,我将通过说明对 ebean 和 play-java 的依赖来更新我的问题。以上是关于如何禁用一个数据库的进化的主要内容,如果未能解决你的问题,请参考以下文章