0

アプリケーションをオンラインにして、Herokuで機能させようとしています。

アプリケーションはMongoHQとMongoidを使用します。

「uri:<%= ENV ['MONGOHQ_URL']%>」という名前をmongoid.ymlファイルに追加するというガイドを複数読んだことがありますが、うまくいきません。

これは、Herokuから取得したエラーです。

"アプリケーションエラー

アプリケーションでエラーが発生し、ページを提供できませんでした。しばらくしてからもう一度お試しください。

アプリケーションの所有者である場合は、ログで詳細を確認してください。」

これは私の$herokuログにあるものです

2011-03-12T21:09:57-08:00 heroku [router]:エラーH10(アプリがクラッシュしました)-> GET autommator.heroku.com/ dyno = none queue = 0 wait = 0ms service = 0ms bytes = 0 2011- 03-12T21:09:57-08:00heroku [nginx]:GET / HTTP / 1.1 | 76.112.220.158 | 795 | http | 503

これが私のmongoid.ymlファイルです。

require 'yaml'
YAML::ENGINE.yamler= 'syck'

defaults: &defaults
  host: localhost
  # slaves:
  #   - host: slave1.local
  #     port: 27018
  #   - host: slave2.local
  #     port: 27019

development:
  <<: *defaults
  host: localhost
  database: autommator_development

test:
  <<: *defaults
  host: localhost
  database: autommator_test

# set these environment variables on your prod server
production:
  uri: <%= ENV['MONGOHQ_URL'] %>
  host: <%= ENV['MONGOID_HOST'] %>
  port: <%= ENV['MONGOID_PORT'] %>
  username: <%= ENV['MONGOID_USERNAME'] %>
  password: <%= ENV['MONGOID_PASSWORD'] %>
  database: <%= ENV['MONGOID_DATABASE'] %>

完全にアイデアから。

ありがとう。

4

4 に答える 4

2

Herokuアドオンでmongoidを使用するには、mongoid.ymlは次のようになります。

production:
  uri: <%= ENV['MONGOHQ_URL'] %>

他のデータベース接続情報はないはずなので、ホスト、ポート、ユーザー名、パスワード、データベースの各フィールドを引き出します。

于 2011-03-14T02:20:33.830 に答える
1

私は今朝問題を理解しました。開発用PCのアプリはRuby1.9.2を実行しています。Herokuのデフォルトは1.8.7です。

この記事にあるコマンドを実行したところ、http: //devcenter.heroku.com/articles/bambooがリロードされ、すべてが機能します。

助けてくれてありがとう。

于 2011-03-14T10:00:07.247 に答える
1

データベースはHerokuアドオンを介して作成しましたか、それともMongoHQから直接作成しましたか?MongoHQから直接行った場合は、変数を手動で設定する必要があります。

heroku config:add MONGOHQ_URL=mongodb://user:pass@server.mongohq.com:port/db_name

herokuアドオン経由の場合は、作成する必要があります。変数を追加してもサポートチケットをsupport@mongohq.comに送信しても問題が解決しない場合は、さらに掘り下げることができます。

于 2011-11-04T21:57:10.147 に答える
0

たぶん私はここで明白なことを述べていますが、それがしていることは環境からそれらの価値を引き出すことです。これを機能させるには、heroku環境で変数(MONGOHQ_URLなど)を設定する必要があります。そのためのコマンドは、そのようなheroku config:add MONGOHQ_URL=XXXXXものか、そのようなものだと思います。間違いなくherokuのドキュメントで調べてください。

ただし、環境から値を取得していることを考えると、YMLは間違った方法のようです。これらの値を設定するか、どこでも読み取ることができるある種のMONGO_CONFIGに配置する初期化ファイルを提案します。このルートを使用する場合は、事前設定されている場合はenv変数に設定することも、そうでない場合はYMLファイルにフォールバックすることもできます。

このrailscastは、私が話していることの一種を示していますhttp://railscasts.com/episodes/85-yaml-configuration-file 違いは、変数を設定するときに、次のように設定することです。ENV['XXX'] if ENV['XXX']

于 2011-03-13T21:55:03.020 に答える