2016-11-04 13 views
2

私はpostgreの宝石を使用してのRuby on Railsのアプリを開発していますし、これは次のように私のdatabase.ymlのがどのように見えるかです:Postgreeレールコンソールであまりにも多くの接続

development: 
adapter: postgresql 
    encoding: utf-8 
    pool: 5 
    username: "hytxlzju" 
    password: "xxxxx" 
    host: "jumbo.db.elephantsql.com" 
    port: "5432" 
    database: "hytxlzju" 

production: 
    adapter: postgresql 
    encoding: utf-8 
    pool: 5 
    username: "hytxlzju" 
    password: "xxxxxx" 
    host: "jumbo.db.elephantsql.com" 
    port: "5432" 
    database: "hytxlzju" 

私はこれに接続していたびは、ローカルDBから、 rails console接続が多すぎます。 コード内でユーザがログアウトした後、コードに接続を強制終了するにはどうすればいいですか?は、テーブルを変更した後、どのように私のレールコンソールを打ち切ることができますか?

[EDIT] これは、エラーメッセージは次のとおりです。

C:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/activerecord-3.2.22.5/lib/active_record/connection_adapters/postgresql_adapter.rb:12 
22:in `initialize': FATAL: too many connections for role "hytxlzju" (PG::ConnectionBad) 

私は私のinitilizer、まだ成功追加[EDIT]:

Rails.application.config.after_initialize do 
    ActiveRecord::Base.connection_pool.disconnect! 

    ActiveSupport.on_load(:active_record) do 
    config = ActiveRecord::Base.configurations[Rails.env] || 
       Rails.application.config.database_configuration[Rails.env] 
    config['pool']    = ENV['DB_POOL']  || ENV['RAILS_MAX_THREADS'] || 5 
    ActiveRecord::Base.establish_connection(config) 
    end 
end 

答えて

0

[SOLVED]

接続を閉じる前に、500エラーが投げられたので、それは、それらを閉じずに、複数のプール接続を作成していたので、どういうわけか、私のデモアプリケーションは、したがって、テーブルのエントリを見つけていませんでした私がプールを閉じたそのコードのビットは決して閉じられませんでした。より多くのabut postgreセッションここに https://devcenter.heroku.com/articles/concurrency-and-database-connections#connection-pool

1

あなたは以下のアプローチを試すことができますが

アクティブレコードは、アプリケーションごとの接続の総数を制限します。 ng pool;これは、あなたが、それは問題を解決する可能性がありますENV['RAILS_MAX_THREADS']more here

を使用ピューマを使用している場合は、あなたのアプリがconfig/datbase.yml

pool: <%= ENV['RAILS_MAX_THREADS'] || 5 %> 

にデータベース

に持つことができます 接続の最大サイズです。

+0

どうすればこの接続を強制終了できますか?多分それはそれを解決するだろう –

+0

http://stackoverflow.com/questions/5108876/kill-a-postgresql-session-connection –

+0

これらのコマンドを 'rails dbconsole'で実行できますか? –

関連する問題