2017-06-07 9 views
0

から間違ったデータベースに接続するには、私は最近、私のレールのアプリの基本的なレベルのデータベースを作成し、私が実行しようとしたときに私は気づいた:コマンドラインからHerokuの+ Railsの:HerokuのCLI

heroku run rake db:migrate 

それがあったこと、私の古いデータベースに接続しています。 heroku runコマンドからヒロクが接続するデータベースをどのように制御しますか?

+0

herokuアプリのダッシュボードにアクセスし、postgresプラグインを確認します。使用されているdbを確認してください。 –

答えて

1

Heroku Rakeコマンドを実行するときにデータベースを指定することはできませんが、特定のデータベースをプライマリとして設定することができます(したがって、上記のコマンドの実行時に自動的に接続することができます)。

出力すべきようなもの(2つのデータベースは、あなたの場合に表示されています)を実行しheroku pg:info、:あなたはより多くを読むことができる

heroku pg:promote HEROKU_POSTGRESQL_MAROON_URL 

=== HEROKU_POSTGRESQL_MAROON_URL (DATABASE_URL) 
Plan:   Ronin 
Status:   Available 
Data Size:  26.1 MB 
Tables:   5 
PG Version:  9.5.3 
Connections: 2 
Fork/Follow: Available 
Rollback:  Unsupported 
Created:  2012-05-02 21:54 UTC 
Maintenance: not required (Mondays 23:00 to Tuesdays 03:00 UTC) 
Infrastructure: Legacy 

あなたはその後、促進するためのデータベースを選択することができますthis Heroku articleにあります。

+0

hmmm。私はすでにそれを行い、正しいDBが促進されています。私は唯一の問題があると思っていました。なぜなら私は最近、私が「heroku run rake db:migrate」と呼んだときに私の最近の移行が起こらなかったからです。 –

+0

これらの移行は決してHerokuにコミットされなかった可能性があります。 'rake db:migrate'を実行すると、現在のスキーマバージョン(' schema.rb'の 'ActiveRecord :: Schema.define(バージョン:20170605195958)')は、移行ファイル名のタイムスタンプに基づいて特定の移行をスキップする可能性があります。 'heroku pg:psql'と' \ d'を実行してHeroku上のすべてのテーブルを表示し、ローカルデータベースと比較してどの移行が欠落しているかを確認します。 – mmichael