2009-08-04 23 views
0

私はローカルにリモート接続をセットアップしてherokuにプッシュする必要があります。私がヒロクにプッシュしたとき、私はエラーが出てきました。にherokus ymlファイルを編集する方法があります

RemoteDBNameが設定されていません。

私はherokuが独自のconfig.ymlファイルを使用していると仮定しています。誰もがこれを見るかもしれないHerokuの上のリモート・データベースに接続するため、これを考え出し

答えて

0

Herokuのはあなたに何かを上書きし、自分自身とあなたのdatabase.ymlのファイルを置き換えます。この問題を回避するには

  • あなたのconfigフォルダに新しいファイルを作成し、名前は
  • セットアップにこのファイル内の接続文字列をwhatever.yml。
  • initializersフォルダに新しいファイルを作成しましたが、私はload_remote.rbという名前を付けました。このファイル内のコード行を記述:

    REMOTE_DB = YAML.load_file(「#{RAILS_ROOT} /config/YOURNEWFILEHERE.yml」)

  • この線とリモートモデルのいずれかで接続を確立しますコード:

    establish_connection [「あなたはここにYMLファイルに接続文字列を名前のどのような」] REMOTE_DB

0

私はあなたがHerokuので作業するときにデータベース構成がどのように行われるかをお見せしましょう。私はこれがドキュメンテーションの中で少し曖昧であるかもしれないと思っている人もいます。

zero:~/Projects/crantastic $ heroku console 
Ruby console for crantastic.heroku.com 
>> puts File.read(Rails.configuration.database_configuration_file) 
--- 
production: 
    encoding: unicode 
    adapter: postgresql 
    username: something_random 
    port: 5432 
    host: somewhere.at.heroku 
    database: something_random 
    password: something_random 

=> nil 
>> 

実際には、自分のサイトをサーバーにプッシュすると、ヘロクがアプリのdatabase.ymlを置き換えます。あなたのデータは、あなたがローカルで使っているものに関わらず、派手なPostgreSQLサーバの1つに保存されます。つまり、database.ymlについて考える必要はありません。タップは、すべてがdbにとらわれないことを確認します。最新の開発DBをHerokuにプッシュしたい場合は、単にheroku dbを実行してください:

関連する問題