数据库在 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 app 或 rhc app create ruby-X.X.X -a railsX
开头。
当我被告知要在 open shift 上部署时,我刚刚配置 rhc
并设置了一个 openshift git remote
。
这意味着我的项目根目录中没有 .openshift
目录。一旦我克隆 https://github.com/openshift/rails4-example 并将该项目的 .openshift
目录移动到我的项目根目录中,我就能够在不丢失数据库的情况下进行部署。
我 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 app 或 rhc app create ruby-X.X.X -a railsX
开头。
当我被告知要在 open shift 上部署时,我刚刚配置 rhc
并设置了一个 openshift git remote
。
这意味着我的项目根目录中没有 .openshift
目录。一旦我克隆 https://github.com/openshift/rails4-example 并将该项目的 .openshift
目录移动到我的项目根目录中,我就能够在不丢失数据库的情况下进行部署。