ruby-on-rails postgresql sinatra rails-activerecord puma

ruby on rails - ActiveRecord:: ConnectionNotEstablished-No hay grupo de conexiones para X



ruby-on-rails postgresql (1)

No puedo hacer que mi aplicación sinatra / ruby ​​alojada en heroku funcione como se desea. Jugué con alguna configuración tratando de resolver este problema, pero hasta ahora no hay resultados.

ActiveRecord::ConnectionNotEstablished - No connection pool for User: 2015-06-25T14:26:11.736854+00:00 app[web.1]: /app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:566:in `retrieve_connection'' 2015-06-25T14:26:11.736856+00:00 app[web.1]: /app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.2.1/lib/active_record/connection_handling.rb:113:in `retrieve_connection'' 2015-06-25T14:26:11.736858+00:00 app[web.1]: /app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.2.1/lib/active_record/connection_handling.rb:87:in `connection''

El usuario es una de mis tablas de ActiveRecords y la aplicación falla porque intento consultarla.

Yo uso sinatra con respaldo puma. Aquí está mi Procfile:

web: ruby app/my-server.rb -s puma

También estaba comprobando cuántas conexiones abiertas hay usando:

select count(*) from pg_stat_activity where pid <> pg_backend_pid() and usename = current_user;

pero su dice 0 cada vez.

Estoy alojando la aplicación en el plan gratuito y el plan de desarrollo de herokupostgres.

También noté que el problema ocurre cuando hay 2 llamadas rápidas a api en un corto intervalo de tiempo. Como solo había 1, no 5 conexiones disponibles, porque la primera llamada tuvo éxito y la segunda falla. En mi database.yml configuré el grupo a 5.

Estoy en Rails 4.2.1 y Postgres 9.4

Aquí está mi database.yml también:

default: &default adapter: postgresql encoding: utf8 pool: 5 timeout: 5000 production: <<: *default host: my_db_address port: 5432 database: my_db_name username: my_db_user_name password: my_db_password < test and development ommited >

¿Echo de menos alguna configuración o el plan Heroku libre se ahoga en eso?


Por favor verifica como tu aplicación sinatra estableció la conexión.

configure :production, :development do db = URI.parse(ENV[''DATABASE_URL''] || ''postgres://localhost/mydb'') pool = ENV["DB_POOL"] || ENV[''MAX_THREADS''] || 5 ActiveRecord::Base.establish_connection( adapter: db.scheme == ''postgres'' ? ''postgresql'' : db.scheme, host: db.host, username: db.user, password: db.password, database: db.path[1..-1], encoding: ''utf8'', pool: pool ) end

Asegúrese de tener la configuración adecuada para el grupo, y también asegúrese de tener una configuración de DB_POOL para DB_POOL o MAX_THREADS .

heroku config:set DB_POOL=5

o

heroku config:set MAX_THREADS=5