使用rails3.1 heroku部署遇到很多麻烦

时间:2011-10-18 04:12:42

标签: ruby-on-rails deployment heroku asset-pipeline

我在部署简单的rails3.1应用程序时遇到了很多麻烦。似乎有两个主要问题。

  1. 由于资产管道,资产未在生产环境中加载。
  2. 我使用默认的db sqlite3开发。 Heroku使用postgresql。
  3. 基本上,我希望我的开发部署工作流程尽可能无缝。任何人都可以推荐最好的方式来设置我的开发环境,这样当我$ 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
    

3 个答案:

答案 0 :(得分:1)

我有这个问题,但我改为雪松堆,这似乎解决了资产问题。至于DB,只需指定

即可
group :production do
    gem 'pg' 
end
宝石文件中的

答案 1 :(得分:1)

在提交之前运行以下内容以预编译资产:

$> bundle exec rake assets:precompile

除了放置

之外,您不需要为heroku数据库设置任何内容
gem 'pg' 

在gemfile的生产部分。它自己完全了解所有其余部分。

我使用了一些不错的技巧:

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

了解推送& amp;拉here

我在mysql本地开发,因为它有最好的前端恕我直言,但你也可以使用sqlite3或postgres,这取决于你想在原始表中工作多少。

答案 2 :(得分:0)

实际上,我使用了您的两个答案中的信息来使其发挥作用。我的资产问题已通过bundle exec rake assets:precompile解决,我的数据库问题已由

解决
group :production do
    gem 'pg' 
end

并添加此内容:

group :development do
    gem 'sqlite3' 
end