【发布时间】:2017-09-06 18:26:02
【问题描述】:
我一直在开发 Ruby on Rails API,并且正在使用 Google Cloud Platform,特别是 Google App Engine 来部署我的应用程序。我遵循了here 的指示。到目前为止,一切都很好。我的应用程序已成功部署,并且可以成功运行迁移。我们将此环境称为生产。
问题是我需要部署一种 staging 环境。目前我不得不创建另一个项目来解决我的问题并将其视为我的暂存环境。现在,我认为这没有必要,实际上似乎是多余的。
我准备了另一个数据库my_app_db_staging。我创建了一个staging.yaml 文件,声明以服务名称staging 作为另一个实例运行。服务已成功部署。问题出在哪里?好吧,运行迁移。我正在使用appengine gem。因此,要运行您应该运行的迁移:
bundle exec rake appengine:exec -- bundle exec rake db:migrate
但正如文档所述:
appenginegem 提供 Rake 任务appengine:exec以针对您的应用的最新部署版本运行命令在生产 App Engine 环境中。
因此,不知道如何针对我最近创建的 staging 服务运行迁移。
【问题讨论】:
-
你试过类似
bundle exec rake appengine:exec -- bundle exec rake db:migrate RAILS_ENV=staging的东西吗? -
确实如此。我已经尝试了指向我的新环境的 rake 任务的所有组合。但什么也没发生。
标签: ruby-on-rails ruby postgresql google-app-engine google-cloud-platform