У вас много проблем с Rails3.1 Heroku Deploy
-
22-10-2019 - |
Вопрос
У меня много проблем с развертыванием простого приложения Rails3.1. Кажется, что есть две основные проблемы.
- Из -за конвейера активов активы не загружаются в производственной среде.
- Я развиваю с 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