Рельсовые рейк-активы: прекомпиляция для производства - PullRequest
25 голосов
/ 17 октября 2011

Я пытаюсь предварительно скомпилировать ресурсы для приложения, чтобы развернуть его в 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 Ответ

54 голосов
/ 22 марта 2013

Старый вопрос, но принятый ответ на самом деле не отвечает на вопрос - и я только что нашел это в поиске, так что я думаю, что это актуально.

Причина ошибки заключается в том, что 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 снова

Извините, что поднимаю старые вещи ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...