Rails-рейк-активы: прекомпиляция для производства
Я пытаюсь перекомпилировать активы для моего приложения для развертывания в Heroku, но должен выполнить следующую ошибку.
При запуске:
RAILS_ENV=production bundle exec rake assets:precompile
Ошибка:
/bin/rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets
rake aborted!
Please install the postgresql adapter: `gem install activerecord-postgresql-adapter` (pg is not part of the bundle. Add it to Gemfile.)
Потому что я использую в разработке SQLite и в выпуске Postgresql следующий Gemfile
gem "rails", "~> 3.1.0"
group :production do
gem 'pg'
end
group :development, :test do
gem 'sqlite3'
end
gem 'sass-rails', "~> 3.1.0"
group :assets do
gem 'coffee-rails', "~> 3.1.0"
gem 'uglifier'
gem 'compass', '~> 0.12.alpha.0'
gem 'html5-boilerplate'
end
Я много пробовал, но не могу заставить это работать.
Я не знаю, важно ли это, но моя database.yml выглядит так:
production:
adapter: postgresql
host: localhost
database: db
encoding: unicode
username: user
password: ''
Ответы
Ответ 1
Старый вопрос, но принятый ответ на самом деле не отвечает на вопрос - и я просто нашел это в поиске, поэтому, думаю, это актуально.
Причиной ошибки является то, что gem 'pg'
находится в группе производственных камней.
При запуске rake assets:precompile
происходит доступ к рабочей среде. Поэтому он пытается загрузить производственную среду , но у вас нет всех зависимостей, установленных.
Запуск RAILS_ENV=production bundle exec rails server
, вероятно, даст вам аналогичную ошибку.
Я могу думать о двух разных решениях
1) Посмотрите, есть ли в вашем корневом каталоге файл .bundle/config
. Если да, проверьте, говорит ли он WITHOUT :production
или аналогичный. Удалите эту строку или весь каталог .bundle
и снова запустите bundle
.
2) в Gemfile
gem :development, :production do
gem 'pg'
end
при удалении группы :production
снова запустите bundle
Извините, что воспитывал старые вещи...