【问题标题】:Run Ruby on Rails migrations on specific Google App Engine service在特定的 Google App Engine 服务上运行 Ruby on Rails 迁移
【发布时间】: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

但正如文档所述:

appengine gem 提供 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


【解决方案1】:

我深入研究了appengine gem,它有一个选项。它缺少更多文档,因此您不必浪费时间寻找答案:

rake appengine:exec GAE_CONFIG=staging.yaml -- bundle exec rake db:migrate

选项可以和GAE_SERVICE一起使用,但是yaml文件必须同名,否则会报错。

【讨论】:

    猜你喜欢
    • 2017-05-17
    • 2016-05-25
    • 1970-01-01
    • 2019-01-08
    • 2011-03-17
    • 1970-01-01
    • 2017-10-29
    • 1970-01-01
    • 2011-01-14
    相关资源
    最近更新 更多