2013-09-04 3 views
1

Когда я раскрываю в Heroku я получаю это сообщение об ошибке:Asset Pipeline неудачу при развертывании Heroku

Connecting to database specified by DATABASE_URL 
    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? 

Любопытно, что это только начало происходить после того, как я добавить gem 'impressionist' к Gemfile. На местном уровне проблем нет. Комментируя камень, он решает его для развертывания.

Ошибка, полученная от Heroku, составляет well documented, но ничто не дает мне никаких подсказок о том, что вызывает отказ.

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

Update

Вот полный Gemfile, просто чтобы показать, что это нормальное приложение, которое отлично работает в развертывании (пока не будет добавлен выше драгоценный камень).

source 'https://rubygems.org' 

gem 'rails', '3.2.13' 
gem 'bcrypt-ruby', '3.0.1' 
gem 'jquery-rails', '2.2.1' 
gem 'impressionist' 
# gem 'will_paginate' 

group :assets do 
    gem 'sass-rails', '~> 3.2.6' 
    gem 'uglifier', '>= 1.3.0' 
    gem 'jquery-ui-rails' 
end 

group :development, :test do 
    gem 'quiet_assets' 
    gem 'webrick', '~> 1.3.1' 
    gem 'sqlite3', '1.3.7' 
    gem 'hirb' 
end 

group :production do 
    gem 'thin' 
    gem 'pg', '0.12.2' 
end 
+0

Вы добавили к пользователю ENV-компилировать флаг, как указано в руководстве активов? https://devcenter.heroku.com/articles/rails-asset-pipeline – friism

+0

Работает ли ваш сервер postgresql? 'ps aux | grep postgres' – usha

+0

@friism no У меня нет.Как вы можете видеть в обновлении, приложение нормально работает нормально, поэтому я не знаю, является ли это значимым решением? –

ответ

4

«выпуск» в том, что импрессионисты устанавливают конфигурацию базы данных на лета, поэтому он должен загрузить адаптер DB. Давайте используем ActiveRecord в качестве примера. Когда он пытается загрузить ActiveRecord :: Base, возникает исключение, которое Heroku сообщает вам с этим сообщением, потому что вы еще не подключены к базе данных. У Devise была эта проблема plataformatec/devision # 1339

Я добавил камень cancan и удалил импрессионист, и он поднял ту же ошибку.

К счастью, есть решение:

# config/application.rb 
# Forces application to not load models or access the DB when precompiling 
# assets 
config.assets.initialize_on_precompile = false 

Спасибо :)

1

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

Вы можете быть в состоянии решить эту проблему, добавив следующую строку в файл config/environments/production.rb:

config.assets.initialize_on_precompile = false 
+0

К сожалению, добавление строки выше не решило ее. Теперь я подал в суд на GitHub. Спасибо! –

0

изменения этого в файле production.rb

config.assets.compile = false 

затем прекомпиляции активы локально

RAILS_ENV=production bundle exec rake assets:precompile 

Будет создан каталог public/assets. Внутри этого каталога вы найдете manifest.yml, который включает в себя md5sums скомпилированных активов в Rails 3. В Rails 4 файл будет манифестным .json. Добавление public/assets в ваш репозиторий git сделает его доступным для Heroku.

git add public/assets 
git commit -m "vendor compiled assets" 

после этого нажать код

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