数据库在 OpenShift (OSE) 运行 Postgres 和 Rails 4 / Ruby 2 上消失

Database disappearing on OpenShift (OSE) running Postgres and Rails 4 / Ruby 2

我 Ruby (2) on Rails (4) 应用部署在 OpenShift Enterprise 运行 Postgres 数据库上。初始部署后,该应用程序运行完美,信息已保存在数据库中,路由正常,所有测试均通过 - 一切都很好。

然后我用 git push openshift master 部署了一些新的更改。当我回到应用程序时,它仍然是 运行,但所有数据库内容(包括 table 结构)都不见了。

push 的输出是干净的。我没有写任何钩子,也没有任何时髦的 cron 作业 运行。我可以重复这个过程,重建数据库,然后看着它在每次部署时都被吹走。这个问题没有发生在我的本地实例中。

tl;dr: 确保在项目的根目录下有一个 .openshift 目录,例如:https://github.com/openshift/rails4-example

事情是这样的。

当我创建 Rails 应用程序时,我不知道我最终会在哪里部署它。因此,我没有以 OpenShift Rails skeleton apprhc app create ruby-X.X.X -a railsX 开头。

当我被告知要在 open shift 上部署时,我刚刚配置 rhc 并设置了一个 openshift git remote

这意味着我的项目根目录中没有 .openshift 目录。一旦我克隆 https://github.com/openshift/rails4-example 并将该项目的 .openshift 目录移动到我的项目根目录中,我就能够在不丢失数据库的情况下进行部署。