activerecord - español - heroku postgres guide
Cómo aumentar el tamaño de la agrupación de hilos ActiveRecord en heroku (5)
Heroku ahora tiene un buen artículo sobre la administración de tamaños de https://devcenter.heroku.com/articles/concurrency-and-database-connections#connection-pool : https://devcenter.heroku.com/articles/concurrency-and-database-connections#connection-pool
Normalmente establecería el tamaño de la piscina como
development:
adapter: postgresql
encoding: unicode
database: openkitchen_development
username: rails
host: localhost
pool: 10
password:
en database.yml. Sin embargo heroku reemplaza el archivo de configuración. Estoy usando girl_friday para hacer trabajos de db de fondo y necesito aumentar el tamaño del grupo de subprocesos.
La respuesta de remvee llega al corazón de lo que se necesita, pero como su comando provocó que la consola se colgara, pensé en escribir cómo hacerlo manualmente.
heroku config
Busque la clave DATABASE_URL. Para este ejemplo digamos que es:
DATABASE_URL: mysql2://something.example.com/stuff?reconnect=true
Agregue "& pool = 10" al final de la URL (use & en lugar de? Porque la URL ya tiene un parámetro)
heroku config:add DATABASE_URL=mysql2://something.example.com/stuff?reconnect=true&pool=10
No es muy sencillo, pero puedes intentar crear tu propio buildpack.
Tendrás que ir al fork: https://github.com/heroku/heroku-buildpack-ruby
Luego modifique lo siguiente: https://github.com/heroku/heroku-buildpack-ruby/blob/master/lib/language_pack/ruby.rb#L325-387
Solo agrega el tamaño de piscina que requieras.
Luego puedes crear una nueva aplicación de Heroku con tu buildpack personalizado:
heroku create --stack cedar --buildpack https://github.com/yourgithubusername/heroku-buildpack-ruby.git
¡Eso debería ser!
Para su valor, Heroku no recomienda el uso del método de parámetros de URL como se describe en otras respuestas. Se reservan el derecho de restablecer o cambiar esta URL en cualquier momento y, a largo plazo, este comportamiento probablemente se eliminará para el comportamiento de compilación de Rails, de todos modos.
Establecer parámetros adicionales a través de una devolución de llamada después de la inicialización de la aplicación es la forma recomendada de modificar la configuración de sus bases de datos heroku-postgresql según este artículo del centro de desarrollo .
En config / initializers / database_connection.rb:
Rails.application.config.after_initialize do
ActiveRecord::Base.connection_pool.disconnect!
ActiveSupport.on_load(:active_record) do
config = Rails.application.config.database_configuration[Rails.env]
config[''pool''] = 10
ActiveRecord::Base.establish_connection(config)
end
end
Simplemente agregue un parámetro de consulta de pool
a la DATABASE_URL
en su configuración de heroku. Para establecer el tamaño de la piscina en 15 en tu aplicación heroku usa algo como:
heroku config -s | awk ''/^DATABASE_URL=/{print $0 "?pool=15"}'' | xargs heroku config:add