リモート接続をローカルでセットアップし、heroku にプッシュする必要があります。それをherokuにプッシュすると、次のようなエラーが発生しました。
RemoteDBName が構成されていません。
私は(検索して見た)herokuが独自のconfig.ymlファイルを使用していると仮定しています。
リモート接続をローカルでセットアップし、heroku にプッシュする必要があります。それをherokuにプッシュすると、次のようなエラーが発生しました。
RemoteDBName が構成されていません。
私は(検索して見た)herokuが独自のconfig.ymlファイルを使用していると仮定しています。
これを見るかもしれないherokuのリモートデータベースに接続している人のために、これを考え出しました:
Heroku は database.yml ファイルを独自のファイルに置き換え、あなたのファイルを上書きします。
これを回避するには:
イニシャライザ フォルダに新しいファイルを作成します。私は load_remote.rb という名前を付けました。このファイルに、次のコード行を記述します。
REMOTE_DB = YAML.load_file("#{RAILS_ROOT}/config/YOURNEWFILEHERE.yml")
次のコード行を使用して、任意のリモート モデルで接続を確立します。
Establish_connection Remote_DB['ここの yml ファイルで接続文字列に名前を付けたものは何でも']
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 を実行するだけです。