Подтвердить что ты не робот

Ошибка нажатия на герою - прерывание моих рейк-активов: прекомпиляция

Изменить: Я новый рубин на стуле рельсов.

Следуя моему Git Push Heroku Master, я сталкиваюсь с проблемами с Heroku. Вот последний и самый большой, отменивший рейк-активы: прекомпилировать.

-----> Preparing app for Rails asset pipeline
   Running: rake assets:precompile
   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?
   Tasks: TOP => environment
   (See full trace by running task with --trace)
   Precompiling assets failed, enabling runtime asset compilation
   Injecting rails31_enable_runtime_asset_compilation
   Please see this article for troubleshooting help:
   http://devcenter.heroku.com/articles/rails31_heroku_cedar#troubleshooting

Ниже приведено содержимое моего Gemfile:

gem 'rails', '3.2.8'
gem 'bootstrap-sass', '2.1'
gem 'pg'

group :development, :test do
  gem 'rspec-rails'
  gem 'guard-rspec'
  gem 'guard-spork'
  gem 'spork'
  gem 'annotate'
  gem 'database_cleaner'
end

# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sass-rails',   '~> 3.2.3'
end

platforms :jruby do
  gem 'trinidad'
  gem 'jruby-openssl'
end

gem 'jquery-rails'

# Use unicorn as the web server
# gem 'unicorn'

# Deploy with Capistrano
# gem 'capistrano'

# To use debugger
# gem 'ruby-debug'

# Bundle the extra gems:
gem 'RedCloth', '~> 4.2.9', :require => 'redcloth'
gem 'ruby-openid', :require => 'openid'
gem 'rack-openid', :require => 'rack/openid'
gem 'aaronh-chronic', :require => 'chronic' # Fixes for 1.9.2
gem 'coderay'
gem 'lesstile'
gem 'formtastic'
gem 'will_paginate', '~> 3.0.2'
gem 'exception_notification', '~> 2.5.2'
gem 'open_id_authentication'

# Bundle gems for the local environment. Make sure to
# put test-only gems in this group so their generators
# and rake tasks are available in development mode:
group :test do
  gem 'database_cleaner'
  gem 'cucumber-rails',    :require => false
  gem 'cucumber-websteps', :require => false
  gem 'factory_girl'
  gem 'rspec'
  gem 'nokogiri', '~> 1.5.0'
  gem 'webrat'
end

В чем может быть проблема?

Обновление: Я выполнил команду rake с помощью --trace, и она предупредила меня об ошибке, потому что производственная база данных не существовала. Я создал базу данных и снова запускал --trace, и это то, что я сейчас бросаю:

Command failed with status (1): [/usr/local/Cellar/ruby/1.9.3-p286/bin/ruby...]
4b9b3361

Ответ 1

См. Rails 3.1+ Asset Pipeline на Heroku Cedar. Этот точный сценарий описан в разделе "Поиск и устранение неисправностей".

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

Вы можете указать Rails не загружать ваше приложение во время компиляции активов в config/application.rb:

config.assets.initialize_on_precompile = false

Раздел устранения неполадок также рекомендует:

Если rake assets: precompile все еще не работает, вы можете отладить это локально, настроив несуществующую базу данных в локальном config/database.yml и попытавшись запустить rake assets:precompile. В идеале вы должны иметь возможность запускать эту команду без подключения к базе данных.

Ответ 2

Я боролся с той же проблемой, часами сегодня. После добавления

config.assets.initialize_on_precompile = false

в application.rb, не забудьте сделать

git commit

сразу после. Я забыл это сделать, и Героку понятия не имела, что я изменил application.rb. У них нет этой дополнительной строки на странице устранения неполадок.

Ответ 3

Для Rails 4

Включить функцию Heroku Labs, чтобы устранить эту проблему.

heroku labs: включить user-env-compile

Ответ 4

У меня была эта проблема с Rails 4, и ни один из других предложений не помог. Я, наконец, понял это, и это связано с тем, что камень Rollify пытается подключиться к базе данных. Это было исправлено в камне Rollify, однако вам может потребоваться захват последнего исходного кода, чтобы получить исправление. Я просто изменил импорт драгоценных камней для Rollify:

gem 'rolify', :git => 'git://github.com/EppO/rolify.git'

Это, казалось, устранило проблему, и мне не пришлось выполнять какие-либо другие предложения.

Не забудьте связать установку и зафиксировать изменение на git.

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