2012-03-09 11 views
1

データを表示するために使用されるデータベースは、レールコンソールで使用できるデータベースとは異なるようです。レールでのデータベースステージの切り替え

私はrails dbconsoleを実行しようとしていると私は得る:

Couldn't find database client: sqlite3. Check your $PATH and try again. 

私のテストおよび開発データベース・アダプタは、sqlite3のと私の生産アダプタはMYSQLです。

本番データベースに接続するには、私のレールコンソールが必要です。

+0

"ステージ"は間違った単語です。あなたは "環境"を切り替えることを目指しています。あなたの環境は、おそらく異なるデータベースエンジンを使うべきではありません。あなたの環境は 'config/database.yml'で修正する必要があります。実装されている開発中の機能的なSQlite3データベースか、実装された本番環境の機能的なMySQLデータベースがあるかどうかは不明です。明確にすることはできますか? – meagar

+0

私にそれを明確にしてくれてありがとう。 両方のデータベースにデータが入力されます。私はレールコンソールに接続していたDBが開発であったと推測していましたが、それは私が考えることができる唯一の説明です。私はあなたが下で与えた答えでプロダクションに接続することができました。 – marimaf

答えて

2

本番データベースに接続する場合は、consoledbconsoleコマンドを実行する前にproductionRAILS_ENV環境変数を設定する必要があります。

「Railsのコンソール」とdbconsoleコマンドリファレンス異なるもの:

あなたがロードしようとしている場合

$ RAILS_ENV=production ./script/rails dbconsole 

を使用して、SQL文を実行するために、データベースに直接接続する場合"Railsコンソール"、つまりRails環境にアクセスできる対話型Rubyシェルを実行します。

$ RAILS_ENV=production ./script/rails console 
+0

ありがとう!私はプロダクションDBで作業することができました! rake db:seedを実行すると別のdbにロードされるため、同様のコマンドを実行して本番データベースにデータをシードする必要があります。ありがとう。 – marimaf

+1

はい。環境は常に 'RAILS_ENV'環境変数で指定されます。本番データベースをシードしたい場合は、 'RAILS_ENV = production rake db:seed'を実行する必要があります。 – meagar

0

次のコマンドを試してください。

RAILS_ENV=production rails c 
関連する問題