Не удается развернуть приложение Rails 6 в Heroku. ErrorLog включен - PullRequest
0 голосов
/ 15 февраля 2020

Я создал приложение на Rails 6 с использованием React через недавно интегрированный Webpacker для JS и, похоже, не могу преодолеть последнее препятствие развертывания на Heroku. Я не совсем понимаю логи. Я создал Procfile для запуска серверов Puma и Webpack. Кто-нибудь возражал бы посмотреть на журналы и сказать мне, что я могу упустить? Кстати, первым препятствием было избавление от конфликта пряжи против NPM файла блокировки.

Вот журналы:

2020-02-15T19:10:42.074186+00:00 app[web.1]: bundler: failed to load command: puma (/app/vendor/bundle/ruby/2.6.0/bin/puma)
2020-02-15T19:10:42.074256+00:00 app[web.1]: ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR:  relation "outages" does not exist
2020-02-15T19:10:42.074256+00:00 app[web.1]: LINE 8:  WHERE a.attrelid = '"outages"'::regclass
2020-02-15T19:10:42.074257+00:00 app[web.1]: ^
2020-02-15T19:10:42.074269+00:00 app[web.1]: 
2020-02-15T19:10:42.074271+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.2.1/lib/active_record/connection_adapters/postgresql/database_statements.rb:65:in `exec'
2020-02-15T19:10:42.074274+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.2.1/lib/active_record/connection_adapters/postgresql/database_statements.rb:65:in `block (2 levels) in query'
2020-02-15T19:10:42.074274+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.2.1/lib/active_support/dependencies/interlock.rb:48:in `block in permit_concurrent_loads'
2020-02-15T19:10:42.074275+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.2.1/lib/active_support/concurrency/share_lock.rb:187:in `yield_shares'
2020-02-15T19:10:42.074275+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.2.1/lib/active_support/dependencies/interlock.rb:47:in `permit_concurrent_loads'
2020-02-15T19:10:42.074275+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.2.1/lib/active_record/connection_adapters/postgresql/database_statements.rb:64:in `block in query'
2020-02-15T19:10:42.074276+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.2.1/lib/active_record/connection_adapters/abstract_adapter.rb:718:in `block (2 levels) in log'
2020-02-15T19:10:42.074276+00:00 app[web.1]: /app/vendor/ruby-2.6.3/lib/ruby/2.6.0/monitor.rb:230:in `mon_synchronize'
2020-02-15T19:10:42.074276+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.2.1/lib/active_record/connection_adapters/abstract_adapter.rb:717:in `block in log'
2020-02-15T19:10:42.074277+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.2.1/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
2020-02-15T19:10:42.074277+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.2.1/lib/active_record/connection_adapters/abstract_adapter.rb:708:in `log'
2020-02-15T19:10:42.074277+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.2.1/lib/active_record/connection_adapters/postgresql/database_statements.rb:63:in `query'
2020-02-15T19:10:42.074277+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.2.1/lib/active_record/connection_adapters/postgresql_adapter.rb:817:in `column_definitions'
2020-02-15T19:10:42.074278+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.2.1/lib/active_record/connection_adapters/abstract/schema_statements.rb:114:in `columns'
2020-02-15T19:10:42.074278+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.2.1/lib/active_record/connection_adapters/schema_cache.rb:76:in `columns'
2020-02-15T19:10:42.074278+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.2.1/lib/active_record/connection_adapters/schema_cache.rb:82:in `columns_hash'
2020-02-15T19:10:42.074278+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.2.1/lib/active_record/model_schema.rb:490:in `load_schema!'
2020-02-15T19:10:42.074279+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.2.1/lib/active_record/attributes.rb:247:in `load_schema!'
2020-02-15T19:10:42.074279+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.2.1/lib/active_record/attribute_decorators.rb:51:in `load_schema!'
2020-02-15T19:10:42.074279+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.2.1/lib/active_record/model_schema.rb:480:in `block in load_schema'
2020-02-15T19:10:42.074279+00:00 app[web.1]: /app/vendor/ruby-2.6.3/lib/ruby/2.6.0/monitor.rb:230:in `mon_synchronize'
2020-02-15T19:10:42.074280+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.2.1/lib/active_record/model_schema.rb:477:in `load_schema'
2020-02-15T19:10:42.074280+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.2.1/lib/active_record/model_schema.rb:352:in `columns_hash'
2020-02-15T19:10:42.074280+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.2.1/lib/active_record/relation/query_methods.rb:1216:in `arel_column'
2020-02-15T19:10:42.074280+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.2.1/lib/active_record/relation/query_methods.rb:1203:in `block in arel_columns'
2020-02-15T19:10:42.074280+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.2.1/lib/active_record/relation/query_methods.rb:1196:in `each'
2020-02-15T19:10:42.074280+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.2.1/lib/active_record/relation/query_methods.rb:1196:in `flat_map'
2020-02-15T19:10:42.074281+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.2.1/lib/active_record/relation/query_methods.rb:1196:in `arel_columns'
2020-02-15T19:10:42.074281+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.2.1/lib/active_record/relation/query_methods.rb:1187:in `build_select'
2020-02-15T19:10:42.074281+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.2.1/lib/active_record/relation/query_methods.rb:1071:in `build_arel'
2020-02-15T19:10:42.074284+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.2.1/lib/active_record/relation/query_methods.rb:1016:in `arel'
2020-02-15T19:10:42.074284+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.2.1/lib/active_record/relation/finder_methods.rb:317:in `block in exists?'
2020-02-15T19:10:42.074284+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.2.1/lib/active_record/relation.rb:828:in `skip_query_cache_if_necessary'
2020-02-15T19:10:42.074284+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.2.1/lib/active_record/relation/finder_methods.rb:317:in `exists?'
2020-02-15T19:10:42.074285+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.2.1/lib/active_record/querying.rb:21:in `exists?'
2020-02-15T19:10:42.074285+00:00 app[web.1]: /app/app/controllers/application_controller.rb:3:in `<class:ApplicationController>'
2020-02-15T19:10:42.074285+00:00 app[web.1]: /app/app/controllers/application_controller.rb:1:in `<main>'
2020-02-15T19:10:42.074285+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.4.5/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require'
2020-02-15T19:10:42.074285+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.4.5/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `block in require_with_bootsnap_lfi'
2020-02-15T19:10:42.074286+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.4.5/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
2020-02-15T19:10:42.074286+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.4.5/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `require_with_bootsnap_lfi'
2020-02-15T19:10:42.074286+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.4.5/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
2020-02-15T19:10:42.074286+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.2.2/lib/zeitwerk/kernel.rb:16:in `require'
2020-02-15T19:10:42.074287+00:00 app[web.1]: /app/app/controllers/dashboard_controller.rb:1:in `<main>'
2020-02-15T19:10:42.074287+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.4.5/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require'
2020-02-15T19:10:42.074287+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.4.5/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `block in require_with_bootsnap_lfi'
2020-02-15T19:10:42.074287+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.4.5/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
2020-02-15T19:10:42.074287+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.4.5/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `require_with_bootsnap_lfi'
2020-02-15T19:10:42.074288+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.4.5/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
2020-02-15T19:10:42.074288+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.2.2/lib/zeitwerk/kernel.rb:16:in `require'
2020-02-15T19:10:42.074288+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.2.2/lib/zeitwerk/loader.rb:351:in `const_get'
2020-02-15T19:10:42.074288+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.2.2/lib/zeitwerk/loader.rb:351:in `block (2 levels) in eager_load'
2020-02-15T19:10:42.074289+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.2.2/lib/zeitwerk/loader.rb:685:in `block in ls'
2020-02-15T19:10:42.074289+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.2.2/lib/zeitwerk/loader.rb:682:in `foreach'
2020-02-15T19:10:42.074289+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.2.2/lib/zeitwerk/loader.rb:682:in `ls'
2020-02-15T19:10:42.074289+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.2.2/lib/zeitwerk/loader.rb:346:in `block in eager_load'
2020-02-15T19:10:42.074289+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.2.2/lib/zeitwerk/loader.rb:338:in `synchronize'
2020-02-15T19:10:42.074289+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.2.2/lib/zeitwerk/loader.rb:338:in `eager_load'
2020-02-15T19:10:42.074290+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.2.2/lib/zeitwerk/loader.rb:449:in `each'
2020-02-15T19:10:42.074290+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.2.2/lib/zeitwerk/loader.rb:449:in `eager_load_all'
2020-02-15T19:10:42.074290+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/railties-6.0.2.1/lib/rails/application/finisher.rb:122:in `block in <module:Finisher>'
2020-02-15T19:10:42.074290+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/railties-6.0.2.1/lib/rails/initializable.rb:32:in `instance_exec'
2020-02-15T19:10:42.074291+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/railties-6.0.2.1/lib/rails/initializable.rb:32:in `run'
2020-02-15T19:10:42.074291+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/railties-6.0.2.1/lib/rails/initializable.rb:61:in `block in run_initializers'
2020-02-15T19:10:42.074291+00:00 app[web.1]: /app/vendor/ruby-2.6.3/lib/ruby/2.6.0/tsort.rb:228:in `block in tsort_each'
2020-02-15T19:10:42.074291+00:00 app[web.1]: /app/vendor/ruby-2.6.3/lib/ruby/2.6.0/tsort.rb:350:in `block (2 levels) in each_strongly_connected_component'
2020-02-15T19:10:42.074291+00:00 app[web.1]: /app/vendor/ruby-2.6.3/lib/ruby/2.6.0/tsort.rb:431:in `each_strongly_connected_component_from'
2020-02-15T19:10:42.074294+00:00 app[web.1]: /app/vendor/ruby-2.6.3/lib/ruby/2.6.0/tsort.rb:349:in `block in each_strongly_connected_component'
2020-02-15T19:10:42.074294+00:00 app[web.1]: /app/vendor/ruby-2.6.3/lib/ruby/2.6.0/tsort.rb:347:in `each'
2020-02-15T19:10:42.074294+00:00 app[web.1]: /app/vendor/ruby-2.6.3/lib/ruby/2.6.0/tsort.rb:347:in `call'
2020-02-15T19:10:42.074295+00:00 app[web.1]: /app/vendor/ruby-2.6.3/lib/ruby/2.6.0/tsort.rb:347:in `each_strongly_connected_component'
2020-02-15T19:10:42.074295+00:00 app[web.1]: /app/vendor/ruby-2.6.3/lib/ruby/2.6.0/tsort.rb:226:in `tsort_each'
2020-02-15T19:10:42.074295+00:00 app[web.1]: /app/vendor/ruby-2.6.3/lib/ruby/2.6.0/tsort.rb:205:in `tsort_each'
2020-02-15T19:10:42.074295+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/railties-6.0.2.1/lib/rails/initializable.rb:60:in `run_initializers'
2020-02-15T19:10:42.074296+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/railties-6.0.2.1/lib/rails/application.rb:363:in `initialize!'
2020-02-15T19:10:42.074296+00:00 app[web.1]: /app/config/environment.rb:5:in `<top (required)>'
2020-02-15T19:10:42.074297+00:00 app[web.1]: config.ru:3:in `require_relative'
2020-02-15T19:10:42.074297+00:00 app[web.1]: config.ru:3:in `block in <main>'
2020-02-15T19:10:42.074315+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/rack-2.2.2/lib/rack/builder.rb:116:in `eval'
2020-02-15T19:10:42.074316+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/rack-2.2.2/lib/rack/builder.rb:116:in `new_from_string'
2020-02-15T19:10:42.074316+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/rack-2.2.2/lib/rack/builder.rb:105:in `load_file'
2020-02-15T19:10:42.074316+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/rack-2.2.2/lib/rack/builder.rb:66:in `parse_file'
2020-02-15T19:10:42.074316+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/puma-4.3.1/lib/puma/configuration.rb:321:in `load_rackup'
2020-02-15T19:10:42.074317+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/puma-4.3.1/lib/puma/configuration.rb:246:in `app'
2020-02-15T19:10:42.074317+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/puma-4.3.1/lib/puma/runner.rb:155:in `load_and_bind'
2020-02-15T19:10:42.074317+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/puma-4.3.1/lib/puma/single.rb:98:in `run'
2020-02-15T19:10:42.074317+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/puma-4.3.1/lib/puma/launcher.rb:172:in `run'
2020-02-15T19:10:42.074318+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/puma-4.3.1/lib/puma/cli.rb:80:in `run'
2020-02-15T19:10:42.074318+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/gems/puma-4.3.1/bin/puma:10:in `<top (required)>'
2020-02-15T19:10:42.074318+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/bin/puma:23:in `load'
2020-02-15T19:10:42.074318+00:00 app[web.1]: /app/vendor/bundle/ruby/2.6.0/bin/puma:23:in `<top (required)>'
2020-02-15T19:10:42.174683+00:00 heroku[web.1]: State changed from starting to crashed
2020-02-15T19:10:42.158245+00:00 heroku[web.1]: Process exited with status 1
2020-02-15T19:10:43.902737+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=tml-dashboard.herokuapp.com request_id=c6f9e222-b62f-47e2-b5eb-5befc8af9ad2 fwd="68.194.85.143" dyno= connect= service= status=503 bytes= protocol=https
2020-02-15T19:10:45.661172+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=tml-dashboard.herokuapp.com request_id=25660d39-0184-411c-8e94-d54fcbd0d7b3 fwd="68.194.85.143" dyno= connect= service= status=503 bytes= protocol=https

Ответы [ 2 ]

0 голосов
/ 15 февраля 2020

Ваша ошибка на самом деле

ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR:  relation "outages" does not exist

Так что похоже, что вы никогда не выполняли миграции

heroku run rake db:migrate

или, если у вас несколько сред, добавьте флаг для этого env

heroku run rake db:migrate --remote production 

или как называется среда.

0 голосов
/ 15 февраля 2020

Похоже, вы не запустили rails db:migrate после развертывания приложения. К сожалению / к счастью, Heroku не запускает миграции после развертывания.

Как быстрое решение: вы можете запустить heroku bash (вы можете сделать это несколькими способами):

  1. $heroku run bash --app your_application_name
  2. Через GUI из Heroku

и просто запустите его вручную: rails db:migrate

Чтобы избежать этого в будущем, вы можете добавить его в свой Procfile выпуск фаза, где вы можете просто установить, что вы хотите делать после развертывания

# Procfile
release: rake db:migrate
...