#ruby #heroku #sinatra
#ruby #heroku #sinatra
Вопрос:
У меня есть приложение Sinatra, которое отлично работает локально, но когда я отправляю его в heroku, я получаю следующее :
2020-12-28T11:11:23.206376 00:00 heroku[web.1]: Starting process with command `bundle exec thin start -p 55504`
2020-12-28T11:11:25.994322 00:00 app[web.1]: Doing `require 'backports'` is deprecated and will not load any backport in the next major release.
2020-12-28T11:11:25.994336 00:00 app[web.1]: Require just the needed backports instead, or 'backports/latest'.
2020-12-28T11:11:26.249566 00:00 app[web.1]: bundler: failed to load command: thin (/app/vendor/bundle/ruby/2.7.0/bin/thin)
2020-12-28T11:11:26.257657 00:00 app[web.1]: NameError: uninitialized constant ActiveRecord::ConnectionAdapters::ConnectionSpecification
2020-12-28T11:11:26.257658 00:00 app[web.1]: /app/vendor/bundle/ruby/2.7.0/gems/sinatra-activerecord-2.0.21/lib/sinatra/activerecord.rb:25:in `registered'
2020-12-28T11:11:26.257659 00:00 app[web.1]: /app/vendor/bundle/ruby/2.7.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1400:in `block in register'
2020-12-28T11:11:26.257659 00:00 app[web.1]: /app/vendor/bundle/ruby/2.7.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1398:in `each'
2020-12-28T11:11:26.257659 00:00 app[web.1]: /app/vendor/bundle/ruby/2.7.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1398:in `register'
2020-12-28T11:11:26.257660 00:00 app[web.1]: /app/vendor/bundle/ruby/2.7.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1969:in `register'
2020-12-28T11:11:26.257660 00:00 app[web.1]: /app/vendor/bundle/ruby/2.7.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:2030:in `register'
2020-12-28T11:11:26.257661 00:00 app[web.1]: /app/vendor/bundle/ruby/2.7.0/gems/sinatra-activerecord-2.0.21/lib/sinatra/activerecord.rb:81:in `<module:Sinatra>'
2020-12-28T11:11:26.257661 00:00 app[web.1]: /app/vendor/bundle/ruby/2.7.0/gems/sinatra-activerecord-2.0.21/lib/sinatra/activerecord.rb:10:in `<top (required)>'
2020-12-28T11:11:26.257662 00:00 app[web.1]: /app/vendor/bundle/ruby/2.7.0/gems/bundler-2.1.4/lib/bundler/runtime.rb:88:in `require'
2020-12-28T11:11:26.257662 00:00 app[web.1]: /app/vendor/bundle/ruby/2.7.0/gems/bundler-2.1.4/lib/bundler/runtime.rb:88:in `rescue in block in require'
2020-12-28T11:11:26.257662 00:00 app[web.1]: /app/vendor/bundle/ruby/2.7.0/gems/bundler-2.1.4/lib/bundler/runtime.rb:65:in `block in require'
2020-12-28T11:11:26.257663 00:00 app[web.1]: /app/vendor/bundle/ruby/2.7.0/gems/bundler-2.1.4/lib/bundler/runtime.rb:58:in `each'
2020-12-28T11:11:26.257663 00:00 app[web.1]: /app/vendor/bundle/ruby/2.7.0/gems/bundler-2.1.4/lib/bundler/runtime.rb:58:in `require'
2020-12-28T11:11:26.257664 00:00 app[web.1]: /app/vendor/bundle/ruby/2.7.0/gems/bundler-2.1.4/lib/bundler.rb:174:in `require'
2020-12-28T11:11:26.257664 00:00 app[web.1]: /app/config/environment.rb:6:in `<top (required)>'
2020-12-28T11:11:26.257665 00:00 app[web.1]: /app/config.ru:1:in `require_relative'
2020-12-28T11:11:26.257665 00:00 app[web.1]: /app/config.ru:1:in `block in <main>'
2020-12-28T11:11:26.257665 00:00 app[web.1]: /app/vendor/bundle/ruby/2.7.0/gems/rack-1.6.13/lib/rack/builder.rb:55:in `instance_eval'
2020-12-28T11:11:26.257666 00:00 app[web.1]: /app/vendor/bundle/ruby/2.7.0/gems/rack-1.6.13/lib/rack/builder.rb:55:in `initialize'
2020-12-28T11:11:26.257666 00:00 app[web.1]: /app/config.ru:1:in `new'
2020-12-28T11:11:26.257667 00:00 app[web.1]: /app/config.ru:1:in `<main>'
2020-12-28T11:11:26.257667 00:00 app[web.1]: /app/vendor/bundle/ruby/2.7.0/gems/thin-1.8.0/lib/rack/adapter/loader.rb:33:in `eval'
2020-12-28T11:11:26.257667 00:00 app[web.1]: /app/vendor/bundle/ruby/2.7.0/gems/thin-1.8.0/lib/rack/adapter/loader.rb:33:in `load'
2020-12-28T11:11:26.257668 00:00 app[web.1]: /app/vendor/bundle/ruby/2.7.0/gems/thin-1.8.0/lib/rack/adapter/loader.rb:42:in `for'
2020-12-28T11:11:26.257668 00:00 app[web.1]: /app/vendor/bundle/ruby/2.7.0/gems/thin-1.8.0/lib/thin/controllers/controller.rb:170:in `load_adapter'
2020-12-28T11:11:26.257668 00:00 app[web.1]: /app/vendor/bundle/ruby/2.7.0/gems/thin-1.8.0/lib/thin/controllers/controller.rb:74:in `start'
2020-12-28T11:11:26.257669 00:00 app[web.1]: /app/vendor/bundle/ruby/2.7.0/gems/thin-1.8.0/lib/thin/runner.rb:203:in `run_command'
2020-12-28T11:11:26.257669 00:00 app[web.1]: /app/vendor/bundle/ruby/2.7.0/gems/thin-1.8.0/lib/thin/runner.rb:159:in `run!'
2020-12-28T11:11:26.257670 00:00 app[web.1]: /app/vendor/bundle/ruby/2.7.0/gems/thin-1.8.0/bin/thin:6:in `<top (required)>'
2020-12-28T11:11:26.257670 00:00 app[web.1]: /app/vendor/bundle/ruby/2.7.0/bin/thin:23:in `load'
2020-12-28T11:11:26.257670 00:00 app[web.1]: /app/vendor/bundle/ruby/2.7.0/bin/thin:23:in `<top (required)>'
2020-12-28T11:11:26.259446 00:00 app[web.1]: 2020-12-28 11:11:25 0000 Using rack adapter
2020-12-28T11:11:26.325893 00:00 heroku[web.1]: Process exited with status 1
2020-12-28T11:11:26.383463 00:00 heroku[web.1]: State changed from starting to crashed
Он жалуется config.ru
. Это оно:
require_relative './config/environment.rb'
use EntreeController
use UserController
run ApplicationController
Я не использую обратные порты в своем gemfile, понятия не имею, откуда эта ошибка, и ошибка в неинициализированной константе также мне непонятна.
Понятия не имею, с чего начать поиск ошибки.
Комментарии:
1. Ваша ошибка не
config.ru
в том, а скорееNameError: uninitialized constant ActiveRecord::ConnectionAdapters::ConnectionSpecification
Возможно, вам потребуется добавитьgem 'activerecord', '< 6.1.0'
, поскольку кажется, что этот класс был удален6.1.0
в пользу того, что выглядитPoolConfig
как иPoolConfigManager
. Кажется, есть открытый билет , поэтому не стесняйтесь вносить туда свой вклад2. Спасибо. И это одна из проблем.