1

私は現在、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 というエラーが表示されることです。または本番サーバー。

4

1 に答える 1