1

我创建了一个 openshift do-it-yourself 墨盒并在那里部署了一个空的 play 2.1.1 框架模板(来自github 上的 opensas)应用程序。该应用程序运行完美,因此我开始构建一个基于 EBean 的简单持久层,该持久层持久化到内存数据库中的 H2。在我的本地开发机器上,play 应用程序编译并运行良好,所以我将它部署到 openshift。

在我的 openshift 生产部署配置文件中,我启用了在系统重新启动/部署时执行数据库演变的选项,如 opensas 建议的那样。

在开发模式下,play 会要求你对数据库运行挂起的进化,但在 prod 模式下,你必须从命令行指定它。让我们将 play 配置为自动应用进化。像这样编辑文件 conf/openshift.conf:

# openshift action_hooks scripts configuration
# ~~~~~
openshift.play.params="-DapplyEvolutions.default=true"

部署后,我只获得我的应用程序的维护页面。看起来要么不可能在 openshift 上运行 h2 in-mem 数据库,要么数据库演化脚本没有按应有的方式自动执行。

应该可以将应用程序迁移到 postgres 数据库(openshift 中的 postgres 插件),但对于这个应用程序,我希望在一个非常简约的软件堆栈上保持尽可能简单。

有人在openshift上做过H2吗?

4

1 回答 1

0

确保您的 action_hook 是可执行的(chmod +x),并且通过让它在 $OPENSHIFT_DATA_DIR 中写入一个测试文件来确保它实际上正在运行,只是为了确保。

于 2013-12-21T05:23:40.017 回答