Вопрос

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

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

По сути, я хочу, чтобы мой рабочий процесс развития к развертыванию был максимально плавным. Может ли кто -нибудь порекомендовать лучший способ настроить мою среду разработки, чтобы, когда я $ git подтолкнуть 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
Это было полезно?

Решение

Перед тем, как ваш коммит запустит следующее, чтобы предварительно компилировать ваши активы:

$> bundle exec rake assets:precompile

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

gem 'pg' 

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

Несколько хороших трюков, которые я использую довольно много:

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

Читайте о Push & Pull здесь

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

Другие советы

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

group :production do
    gem 'pg' 
end

в драгоценном камне

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

group :production do
    gem 'pg' 
end

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

group :development do
    gem 'sqlite3' 
end
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top