Имея много проблем с rails3.1, героку развернуть - PullRequest
1 голос
/ 18 октября 2011

У меня много проблем с развертыванием простого приложения rails3.1. Похоже, есть две основные проблемы.

  1. Из-за конвейера активов активы не загружаются в производственной среде.
  2. Я разрабатываю с базой данных по умолчанию sqlite3. Heroku использует postgresql.

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

Я полагаю, что лучше всего использовать postgresql в среде разработки. Кто-нибудь знает хороший пост о том, как это настроить?

Должен ли я использовать единорога? тонкий?

Должен ли я использовать другие драгоценные камни, о которых я, возможно, не слышал?

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

Я получаю эту ошибку при попытке сделать:

group :production do
    gem 'pg' 
end

Installing pg (0.11.0) with native extensions /home/work/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:552:in `rescue in block in build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)

        /home/work/.rvm/rubies/ruby-1.9.2-p290/bin/ruby extconf.rb 
checking for pg_config... no
No pg_config... trying anyway. If building fails, please try again with
 --with-pg-config=/path/to/pg_config
checking for libpq-fe.h... no
Can't find the 'libpq-fe.h header
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
    --with-opt-dir
    --without-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=/home/work/.rvm/rubies/ruby-1.9.2-p290/bin/ruby
    --with-pg
    --without-pg
    --with-pg-dir
    --without-pg-dir
    --with-pg-include
    --without-pg-include=${pg-dir}/include
    --with-pg-lib
    --without-pg-lib=${pg-dir}/lib
    --with-pg-config
    --without-pg-config
    --with-pg_config
    --without-pg_config

Ответы [ 3 ]

1 голос
/ 18 октября 2011

Перед выполнением коммита выполните следующие действия для прекомпиляции ваших ресурсов:

$> bundle exec rake assets:precompile

Вам не нужно ничего настраивать для базы данных heroku, кроме как поставить

gem 'pg' 

в разделе производства вашего gemfile. Все остальное он сам вычисляет.

Вот некоторые полезные трюки, которые я использую:

$> heroku db:push
$> heroku db:pull

Читайте о push & pull здесь

Я работаю локально на mysql, так как он имеет лучший внешний интерфейс IMHO, но вам будет хорошо использовать sqlite3 или postgres, в зависимости от того, сколько вы хотите работать в необработанных таблицах.

1 голос
/ 18 октября 2011

У меня была эта проблема, но я перешел на стек кедров, и это, похоже, решило проблему с активами. Что касается БД, просто укажите

group :production do
    gem 'pg' 
end

в гемфайле

0 голосов
/ 18 октября 2011

На самом деле я использовал информацию из обоих ваших ответов, чтобы заставить ее работать. Моя проблема с активом была решена с помощью bundle exec rake assets:precompile, а моя проблема с БД была решена с помощью

group :production do
    gem 'pg' 
end

, а также добавив это:

group :development do
    gem 'sqlite3' 
end
...