2015-07-05 91 views
0

我新的Rails和Heroku的 我尝试下面的代码我的应用程序推送到Heroku的错误,而应用程序部署轨的Heroku

rails new snippets 
    cd snippets 
    git init 
    git add . 
    git commit -m "initial commit" 
wget -O- https://toolbelt.heroku.com/install-ubuntu.sh | sh 
    heroku create 
    git push heroku master 

,但我得到以下错误

An error occurred while installing sqlite3 (1.3.10), and Bundler cannot 

    remote:  continue. 
    remote:  Make sure that `gem install sqlite3 -v '1.3.10'` succeeds before bundling. 
    remote: ! 
    remote: !  Failed to install gems via Bundler. 
    remote: !  
    remote: !  Detected sqlite3 gem which is not supported on Heroku. 
    remote: !  https://devcenter.heroku.com/articles/sqlite3 
    remote: ! 
    remote: 
    remote: !  Push rejected, failed to compile Ruby app 
    remote: 
    remote: Verifying deploy.... 
    remote: 
    remote: ! Push rejected to powerful-waters-8202. 
    remote: 
    To https://git.heroku.com/powerful-waters-8202.git 
    ! [remote rejected] master -> master (pre-receive hook declined) 
    error: failed to push some refs to 'https://git.heroku.com/powerful-waters-8202.git' 

我修改了我的Gemfile为::

group :devlopment, :test do 
    gem 'sqlite3' 
end 

group :production do 
    gem 'pg' 
end 

当我运行捆绑安装 我得到的FOLL由于错误

Installing pg 0.18.2 with native extensions 

Gem::Ext::BuildError: ERROR: Failed to build gem native extension. 

    /home/user/.rvm/rubies/ruby-2.2.1/bin/ruby -r ./siteconf20150705-24664-1i1n8se.rb extconf.rb 
checking for pg_config... yes 
Using config values from /usr/bin/pg_config 
You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application. 
You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application. 
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/user/.rvm/rubies/ruby-2.2.1/bin/$(RUBY_BASE_NAME) 
    --with-pg 
    --without-pg 
    --enable-windows-cross 
    --disable-windows-cross 
    --with-pg-config 
    --without-pg-config 
    --with-pg_config 
    --without-pg_config 
    --with-pg-dir 
    --without-pg-dir 
    --with-pg-include 
    --without-pg-include=${pg-dir}/include 
    --with-pg-lib 
    --without-pg-lib=${pg-dir}/lib 

extconf failed, exit code 1 

Gem files will remain installed in /home/user/.rvm/gems/ruby-2.2.1/gems/pg-0.18.2 for inspection. 
Results logged to /home/user/.rvm/gems/ruby-2.2.1/extensions/x86_64-linux/2.2.0/pg-0.18.2/gem_make.out 
An error occurred while installing pg (0.18.2), and Bundler cannot continue. 
Make sure that `gem install pg -v '0.18.2'` succeeds before bundling. 

我尝试使用命令

gem install pg -v '0.18.2' 

,现在我得到以下错误

ERROR: Error installing pg: 
    ERROR: Failed to build gem native extension. 

这里是我的database.yml文件

# SQLite version 3.x 
# gem install sqlite3 
# 
# Ensure the SQLite 3 gem is defined in your Gemfile 
# gem 'sqlite3' 
# 
default: &default 
    adapter: sqlite3 
    pool: 5 
    timeout: 5000 

development: 
    <<: *default 
    database: db/development.sqlite3 

# Warning: The database defined as "test" will be erased and 
# re-generated from your development database when you run "rake". 
# Do not set this db to the same as development or production. 
test: 
    <<: *default 
    database: db/test.sqlite3 

production: 
    <<: *default 
    database: db/production.sqlite3 

和我gemfile

source 'https://rubygems.org' 


# Bundle edge Rails instead: gem 'rails', github: 'rails/rails' 
gem 'rails', '4.2.1' 
# Use sqlite3 as the database for Active Record 
#gem 'sqlite3' 
# Use SCSS for stylesheets 
gem 'sass-rails', '~> 5.0' 
# Use Uglifier as compressor for JavaScript assets 
gem 'uglifier', '>= 1.3.0' 
# Use CoffeeScript for .coffee assets and views 
gem 'coffee-rails', '~> 4.1.0' 
# See https://github.com/rails/execjs#readme for more supported runtimes 
# gem 'therubyracer', platforms: :ruby 

# Use jquery as the JavaScript library 
gem 'jquery-rails' 
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks 
gem 'turbolinks' 
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder 
gem 'jbuilder', '~> 2.0' 
# bundle exec rake doc:rails generates the API under doc/api. 
gem 'sdoc', '~> 0.4.0', group: :doc 

# Use ActiveModel has_secure_password 
# gem 'bcrypt', '~> 3.1.7' 

# Use Unicorn as the app server 
# gem 'unicorn' 

# Use Capistrano for deployment 
# gem 'capistrano-rails', group: :development 
################################################################################### 
group :development, :test do # <<<< :development, not devlopment 
    gem 'sqlite3' 
end 

group :production do 
    gem 'pg' 
end 


################################################################## 

group :development, :test do 
    # Call 'byebug' anywhere in the code to stop execution and get a debugger console 
    gem 'byebug' 

    # Access an IRB console on exception pages or by using <%= console %> in views 
    gem 'web-console', '~> 2.0' 

    # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring 
    gem 'spring' 
end 

任何人都可以帮我解决这个问题吗?

+0

你在Linux(Ubuntu)上吗? – Pavan

+0

我使用Ubuntu的\t LTS 14.04.2 @Pavan – pokiri

回答

0

你有一些很好的意见在这里了,但我会添加什么我没有看到提及。

我给你的建议是在开发中使用与你在生产中相同的数据库,PostgreSQL。有很多原因,这是一个好主意,你刚刚遇到了一个,部署头痛。

但是让我们假设你坚持使用不同的数据库类型。这条线在你的Gemfile看起来奇怪,我 - “不开发刍议”

# 
# 
################################################################################### 
group :development, :test do # <<<< :development, not devlopment 
    gem 'sqlite3' 
end 

我想你应该尝试

# 
# 
################################################################################### 
group :development, :test do 
    gem 'sqlite3' 
end 

让我知道如何去。

+0

Thnaks很多,但我得到以下错误 远程:任务:TOP =>资产:预编译 远程:(通过运行跟踪跟踪完整跟踪) 遥控器:! 遥控器:!预编译资产失败。 遥控器:! 遥控器: 遥控器:!推送被拒绝,未能编译Ruby应用程序 远程: – pokiri

+0

您是否在更改Gemfile后捆绑安装?还必须改变别的东西。 – Elvn

+0

非常感谢@Asensio – pokiri

0

如果你打算继续运行SQLite的开发,运行

bundle install --without production 

这将防止从捆扎机尝试安装pg,但是Heroku的将安装pg当你部署,因为它们运行--without development,test

如果你想切换到Postgres的地方,有很多的帮助周围的StackOverflow,我不会重复在这里:

+0

感谢@kristjan 我看了帖子,并做实施 命令和apt-get安装的libpq-dev的 创业板安装PG 但我仍然得到错误的 的安装sqlite3(1.3.10)时发生错误,Bundler无法远程执行:继续。远程:请确保gem安装sqlite3 -v'1.3.10'成功 – pokiri

0

正如您所提到的Ubuntu 14.04。2个LTS,请尝试以下命令

sudo apt-get install libpq-dev 

然后

gem install pg -v '0.18.2' 

更新:

你也应该改变适配器postgr ESQL生产database.yml

production: 
adapter: postgresql 
pool: 5 
timeout: 5000 
+0

感谢@pavan 但我得到以下错误 安装sqlite3(1.3.10)和Bundler不能 remote:continue时发生错误。 remote:请确保'gem install sqlite3 -v'1.3.10''成功之前 – pokiri

+0

在生产中?请用'database.yml'文件更新你的代码。 – Pavan

+0

谢谢@pavan请看看更新的问题 – pokiri

相关问题