Загрузка Heroku-Precompiling не удалась

Мне нужна помощь. Когда я пытаюсь загрузить приложение в герою, я получаю эту ошибку, кто-нибудь знает почему? Некоторые ошибались. спасибо

       Using rake (10.1.0)
       ...
       Using tlsmail (0.0.1)
       Using uglifier (2.1.2)
       Your bundle is complete! It was installed into ./vendor/bundle
-----> Writing config/database.yml to read from DATABASE_URL
-----> Preparing app for Rails asset pipeline
       Running: rake assets:precompile
       /tmp/build_e8889be5-168c-49ed-81e7-b71061fc82ee/vendor/bundle/ruby/1.9.1/gems/tlsmail-0.0.1/lib/net/smtp.rb:806: warning: already initialized constant SMTPSession
       ...
       /tmp/build_e8889be5-168c-49ed-81e7-b71061fc82ee/vendor/bundle/ruby/1.9.1/gems/tlsmail-0.0.1/lib/net/pop.rb:702: warning: already initialized constant APOPSession
       DEPRECATION WARNING: You have Rails 2.3-style plugins in vendor/plugins! Support for these plugins will be removed in Rails 4.0. Move them out and bundle them in your Gemfile, or fold them in to your app as lib/myplugin/* and config/initializers/myplugin.rb. See the release notes for more on this: http://weblog.rubyonrails.org/2012/1/4/rails-3-2-0-rc2-has-been-released. (called from <top (required)> at /tmp/build_e8889be5-168c-49ed-81e7-b71061fc82ee/Rakefile:7)
       ...
       rake aborted!
       could not connect to server: Connection refused
       Is the server running on host "127.0.0.1" and accepting
       TCP/IP connections on port 5432?
       /tmp/build_e8889be5-168c-49ed-81e7-b71061fc82ee/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.12/lib/active_record/connection_adapters/postgresql_adapter.rb:1208:in `initialize'
       /tmp/build_e8889be5-168c-49ed-81e7-b71061fc82ee/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.12/lib/active_record/connection_adapters/postgresql_adapter.rb:1208:in `new'
       ...
       /tmp/build_e8889be5-168c-49ed-81e7-b71061fc82ee/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.12/lib/sprockets/assets.rake:29:in `block (2 levels) in <top (required)>'
       Tasks: TOP => environment
       (See full trace by running task with --trace)
 !
 !     Precompiling assets failed.

Ответы

Ответ 1

В Документах Heroku:

Это означает, что ваше приложение пытается подключиться к базе данных как часть активов рейка: precompile. Поскольку конфигурации vars не присутствуют в среде, мы используем placeholder DATABASE_URL для удовлетворения Rails.

Чтобы устранить эту проблему, убедитесь, что следующая строка отображается в config/application.rb:

# config/application.rb
config.assets.initialize_on_precompile = false

После добавления, фиксации изменений и повторного развертывания в Heroku - ваши активы должны компилироваться, если ваше приложение не пытается подключиться к базе данных, что должно устранить ошибку, которую вы наблюдаете.

UPDATE

Строка 46 вашего stacktrace включает следующее сообщение: Devise.secret_key was not set.

Согласно автору Devise, Хосе Валим, этот вопрос можно решить следующим образом

Добавьте в свой инициализатор Devise следующее:

config.secret_key = '- секретный ключ -

В качестве альтернативы следующее решение работает для нескольких пользователей:

Я пошел в файл routes.rb и закомментировал строку devise_for: installs

Затем я вернулся и заработал рельсы для создания devise: install. Если это не сработает, используйте предыдущую версию программы, отредактировав ссылку Gemfile на "Разработать" следующим образом: gem "devise", "3.0.3", а затем выполните шаги, упомянутые выше.

Ответ 2

Есть несколько вещей, которые решили эту проблему для меня:

# config/application.rb
config.assets.initialize_on_precompile = false

Затем, прежде чем я развернул, я скомпилировал свои ресурсы локально и сделал их:

RAILS_ENV=production bundle exec rake assets:precompile

Кроме того, я установил эту добавку героя, как было указано приложением, которое я запускал (в моем случае, Spree commerce)

heroku labs:enable user-env-compile -a myapp

И, конечно же, убедитесь, что ваш файл database.yml настроен на использование adapter: postgresql.

Соберите все это, нажмите на герою, и, надеюсь, он запустится. Если вы все еще не можете открыть приложение, попробуйте просмотреть журналы Heroku: heroku logs -n 500

Мне все еще нужно было перенести мою базу данных с помощью heroku run rake db:migrate

Ответ 3

когда вы используете github и нажимаете на heroku, пока находитесь в ветке разработки, не делайте этого, переходите в ветку master и получайте обновления в разработке git merge develop

после этого

rails precompile:assets
git add -A
git commit -m "Precompile assets"
git push heroku master

если вы хотите открыть развернутый веб-сайт

heroku open

если ничего не отображается, сначала перенесите базу данных:

heroku run rails db:migrate
heroku open

Ответ 4

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