如何禁用一个数据库的进化

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 的依赖来更新我的问题。

以上是关于如何禁用一个数据库的进化的主要内容,如果未能解决你的问题,请参考以下文章

分子进化树构建及数据分析方法介绍【转】

在游戏 2 中重新生成进化脚本

一个初级DBA向中级DBA乃至高级DBA进化需要拥有的能力

物联网浪潮下,物流产业如何再“进化”?

死磕 java同步系列之redis分布式锁进化史

死磕 java同步系列之redis分布式锁进化史