2016-09-12 3 views
1

まず、私はRails/PostgreSQLのnoobの合計です。外部のpostgresデータベースを使用してHeokuにレールをデプロイ

私はHerokuにレールアプリを導入しようとしています。私はそれを稼働させましたが、私がデプロイするたびに、Herokuは私のdatabase.yml情報を無視し、新しいデータベースを生成します。ここに私のdatabase.ymlです

# SQLite version 3.x 
# gem install sqlite3 
# 
# Ensure the SQLite 3 gem is defined in your Gemfile 
# gem 'sqlite3' 
# 
default: &default 
adapter: sqlite3 
pool: 5 
timeout: 5000 

development: 
# <<: *default 
# database: db/development.sqlite3 
adapter: postgresql 
pool: 5 
host: wwydh.cqqq2sesxkkq.us-east-1.rds.amazonaws.com 
timeout: 5000 
username: wwydh_a_team 
password: really cool password 
database: wwydh 
host: wwydh.cqqq2sesxkkq.us-east-1.rds.amazonaws.com 
port: 5432 


# Warning: The database defined as "test" will be erased and 
# re-generated from your development database when you run "rake". 
# Do not set this db to the same as development or production. 
test: 
<<: *default 
database: db/test.sqlite3 

私は間違っていますか?

答えて

0

最後に解決しました。これは私がやったことです、多分それは誰かを助けるでしょう。

Herokuはデフォルトでアプリを '制作'ステータスに設定しています。つまり、database.ymlファイルの 'production'に定義されている設定を使用します。これらの設定がないので、使用するデータベースを作成していました。私はHeroku PostgreSQLデータベース(私のために作成されたデータベース)を削除し、手動で自分のRAILS_ENV変数(Herokuのアプリ設定の下にあります)を「開発」とvoilaに切り替えました!私のアプリは外部AWSデータベースに接続しても問題ありません。

注記インバウンドソース(IE 0.0.0.0/0)からの着信接続を許可するには、AWSで新しいセキュリティグループを定義する必要があります。そうでない場合、データベースはHerokuのアクセスを拒否します。私はAWSのVPCダッシュボードに行き、セキュリティグループをクリックしてデフォルトグループを編集してから、自分のデータベースインスタンスがそのセキュリティグループを使用していることを確認しました。

2
heroku config:add DATABASE_URL=postgres://{user}:{password}@{hostname}:{port}/{database-name} 

次に、アプリを再デプロイします。あなたのDATABASE_URLを読み込み、そこからdatabase.ymlを生成します。

EDIT
データベースが最初に取り外される必要があるこのSO questionによれば、変数DATABASE_URLを更新します。

heroku addons:attach heroku-postgresql -a <app_name> --as HEROKU_DATABASE 
heroku addons:detach DATABASE -a <app_name> 
heroku config:add DATABASE_URL=..... 
+0

ありがとうございました!私が最初のコマンドを実行したとき(括弧の有無にかかわらず)、DATABASE_URL:postgress:// wwydh_a_team:[email protected]:5432/wwydhが無効です。 FOO = barの形式でなければなりません。 –

+0

アップデート、DATABASE_URL:postgresをDATABASE_URL = postgresに変更し、コマンドを実行しましたが、「添付ファイルの値を上書きできません」というエラーメッセージが表示されます。 –

+0

申し訳ありません:: '私は答えを更新します –

関連する問題