2016-07-15 2 views
0

Я пытаюсь развернуть приложение rails для heroku. Приложение загружается, но по какой-то причине не работает должным образом. Когда я типРазвертывание приложения Heroku, Rails

heroku run rake db:migrate

Я получаю сообщение об ошибке говорящего

ActiveRecord::ConnectionTimeoutError: could not obtain a database connection within 5.000 seconds (waited 5.000 seconds)

Я использую пуму для сервера, и я буду размещать некоторые файлы, которые могут вызвать проблемы ... Пожалуйста, просите, что может вызвать эту ошибку!

конфигурации/database.ymi

production: 
    adapter: postgresql 
    host:  localhost 
    encoding: unicode 
    database: FastOrder_production 
    pool:  5 
    username: <%= ENV['FASTORDER_DATABASE_USER'] %> 
    password: <%= ENV['FASTORDER_DATABASE_PASSWORD'] %> 
    template: template0 
    url: <%= ENV["DATABASE_URL"] %> 
    pool: ENV['RAILS_MAX_THREADS'] 

конфигурации/puma.rb

workers Integer(ENV['WEB_CONCURRENCY'] || 2) 
threads_count = Integer(ENV['RAILS_MAX_THREADS'] || 5) 
threads threads_count, threads_count 

preload_app! 

rackup  DefaultRackup 
port  ENV['PORT']  || 3000 
environment ENV['RACK_ENV'] || 'development' 

on_worker_boot do 
    # Worker specific setup for Rails 4.1+ 
    # See: https://devcenter.heroku.com/articles/deploying-rails-applications-with-the-puma-web-server#on-worker-boot 
    ActiveRecord::Base.establish_connection 
end 
+0

вы добавили PROCFILE в папке проекта? как указано https://devcenter.heroku.com/articles/deploying-rails-applications-with-the-puma-web-server – mrvncaragay

+0

Под procfile они говорят: «Однако мы рекомендуем создать файл конфигурации», который я опубликовал –

+0

Это другой. у вас есть config/puma.rb, но у вас нет файла 'Procfile 'файла, содержащего эту строку' web: bundle exec puma -C config/puma.rb' – mrvncaragay

ответ

0

использование

production: 

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

Теперь вы можете установить размер пула соединений, установив переменную конфигурации на Heroku. Например, если вы хотите, чтобы установить его на 10 вы можете запустить:

$ heroku config:set DB_POOL=10 

Это не означает, что каждый дино теперь будет иметь 10 открытых соединений, но только то, что если требуется новое соединение не будет создано до для каждого процесса Rails использовалось не более 10.

0

Вы должны создать свой дб первый:

heroku run rake db:create 

Кроме того, проверьте этот Heroku документ о связях БД: https://devcenter.heroku.com/articles/concurrency-and-database-connections

+0

вызвала ту же ошибку "не удалось получить соединение с базой данных в течение 5000 секунд (ждали 5.000 секунд)". Не удалось создать базу данных для {"adapter" => "postgresql", "host" => "ec2-52-273-201-84.compute-1.amazonaws.com", "encoding" => "unicode", «database» => «dej0vekqovntg», «pool» => «ENV ['RAILS_MAX_THREADS']", "username" => "fluwgnxblabla", "password" => "blablabla", "template" => "template0", " "порт" => 5432} –

Смежные вопросы