私は現在、postgres データベースを使用する本番サーバーにデプロイする rails プロジェクトを持っています。私は Windows で Rails プロジェクトを開発しています。つまり、ローカルでテストしたい場合は、database.yml ファイル内のすべてのデータベースを postgres から sqlite3 に変更する必要があります (postgres サーバーを実行するように Windows をセットアップすると、痛み)。
私ができるようにしたいのは、database.yml を次のようにフォーマットすることです。
development:
adapter: postgresql
encoding: utf8
database: <%= begin IO.read("/home/www-data/.db/.dev_name") rescue "" end %>
pool: 5
username: <%= begin IO.read("/home/www-data/.db/.user") rescue "" end %>
password: <%= begin IO.read("/home/www-data/.db/.pass") rescue "" end %>
# 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:
adapter: sqlite3
database: db/test.sqlite3
pool: 5
timeout: 5000
production:
adapter: postgresql
encoding: utf8
database: <%= begin IO.read("/home/www-data/.db/.prod_name") rescue "" end %>
pool: 5
username: <%= begin IO.read("/home/www-data/.db/.user") rescue "" end %>
password: <%= begin IO.read("/home/www-data/.db/.pass") rescue "" end %>
そうrails s -e test
すれば、ローカルで実行して sqlite3 データベースでテストできますが、開発サーバーと運用サーバーにデプロイするときは、postgres を使用できます。
私が抱えている問題は、上記の database.yml への変更により、rails s -e test
ローカルで実行すると、rails could not find the pg gem というエラーが表示されることです。または本番サーバー。