0

リモート接続をローカルでセットアップし、heroku にプッシュする必要があります。それをherokuにプッシュすると、次のようなエラーが発生しました。

RemoteDBName が構成されていません。

私は(検索して見た)herokuが独自のconfig.ymlファイルを使用していると仮定しています。

4

2 に答える 2

0

これを見るかもしれないherokuのリモートデータベースに接続している人のために、これを考え出しました:

Heroku は database.yml ファイルを独自のファイルに置き換え、あなたのファイルを上書きします。

これを回避するには:

  • config フォルダーに新しいファイルを作成し、whatever.yml という名前を付けます。
  • このファイルで接続文字列を設定します。
  • イニシャライザ フォルダに新しいファイルを作成します。私は load_remote.rb という名前を付けました。このファイルに、次のコード行を記述します。

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

  • 次のコード行を使用して、任意のリモート モデルで接続を確立します。

    Establish_connection Remote_DB['ここの yml ファイルで接続文字列に名前を付けたものは何でも']

于 2009-08-12T15:21:41.517 に答える
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
>>

実際には、Heroku は、サイトをサーバーにプッシュするときにアプリの database.yml を置き換えます。あなたのデータは、あなたがローカルで何を使用していても、彼らの豪華な PostgreSQL サーバーの 1 つに保存されます。これは、database.yml についてまったく考える必要がないことを意味します (当然のことながら、開発目的を除いて)。Taps は、すべてがデータベースに依存しないことを確認します。最新の開発データベースを Heroku にプッシュしたい場合は、heroku db:push を実行するだけです。

于 2009-11-17T10:58:27.663 に答える