0

Rails 4.2.5 アプリをローカル マシン (OS X El Capitan) で実行しています。開発モードでは問題なく動作していました。

しかし、その後、本番モードでどのように機能するかを確認することにしたので、本番モードに切り替えてサーバーを実行しました。

bundle install --deployment --without development test
bundle exec rake db:create RAILS_ENV=production
bundle exec rake db:migrate RAILS_ENV=production
bundle exec rake db:seed RAILS_ENV=production
bundle exec rake assets:precompile RAILS_ENV=production
bundle exec rails s -e production

すべてが良さそうに見えたわけではありません。そのため、すべてが適切に機能するまで、いくつかの変更を加えました。

その後、いくつかの機能を追加する必要があったため、開発モードに戻り、サーバーを実行しました。

bundle install
bundle exec rake db:migrate
bundle exec rake db:seed
bundle exec rails s

サーバーは問題なく動作しましたが、開発用データベースではなく本番用データベースで動作していることがわかりました。

実行してすべてのキャッシュをクリアしようとしましたbundle exec rake tmp:cache:clearが、役に立ちませんでした。

参考までに、私は運用と開発の両方に postgres を使用しています。

database.ymlファイルは次のとおりです。

default: &default
  adapter: postgresql
  encoding: unicode
  pool: 30

development:
  <<: *default
  username: <%= ENV['OATV_POSTGRES_USERNAME'] %>
  password: <%= ENV['OATV_POSTGRES_PASSWORD'] %>
  database: <%= ENV['OATV_POSTGRES_DATABASE_DEVELOPMENT'] %>

test:
  <<: *default
  username: <%= ENV['OATV_POSTGRES_USERNAME'] %>
  password: <%= ENV['OATV_POSTGRES_PASSWORD'] %>
  database: <%= ENV['OATV_POSTGRES_DATABASE_TEST'] %>

production:
  <<: *default
  url: <%= ENV['DATABASE_URL'] %>

もちろん、開発、テスト、および本番モードでテストする必要があるため、ローカル マシンにすべての環境変数を設定しました。

ここで考えられる原因は何ですか?

事前にご回答いただきありがとうございます。

4

1 に答える 1

2

ここに書くだけです。可能な解決策:

1 . サーバーを再起動します (本番環境で設定され、開発モードでの実行時にクリアされなかった不要な変数をすべてクリアする必要があります)。たとえばurl: <%= ENV['DATABASE_URL'] %>、本番環境では設定されましたが、開発モードでは設定されませんでした

2 .変更:

   development:
     <<: *default

に:

  development:
    <<: *default
    url: postgres:///db/database-name

したがって、本番モードですでに保存されている URL を使用する代わりに、ローカルの開発データベースを手動で指定します。

または(おそらく)3番目:

3.実行bundle exec rails s -e development

于 2016-04-14T12:27:03.183 に答える