0

重複の可能性:
Heroku、Rails 3、および sqlite3

Centos 6.3 OS を使用していますが、Git を使用してアプリケーションを heroku にプッシュできません。

入力内容:

git push heroku master

私が得るもの:

Counting objects: 70, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (55/55), done.
Writing objects: 100% (70/70), 86.84 KiB, done.
Total 70 (delta 7), reused 0 (delta 0)
-----> Ruby/Rails app detected
-----> Installing dependencies using Bundler version 1.3.0.pre.5
   Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin --deployment
   Fetching gem metadata from http://rubygems.org/.........
   Fetching gem metadata from http://rubygems.org/..
   Installing rake (10.0.3)
   Installing abstract (1.0.0)
   Installing activesupport (3.0.19)
   Installing builder (2.1.2)
   Installing i18n (0.5.0)
   Installing activemodel (3.0.19)
   Installing erubis (2.6.6)
   Installing rack (1.2.6)
   Installing rack-mount (0.6.14)
   Installing rack-test (0.5.7)
   Installing tzinfo (0.3.35)
   Installing actionpack (3.0.19)
   Installing mime-types (1.19)
   Installing polyglot (0.3.3)
   Installing treetop (1.4.12)
   Installing mail (2.2.19)
   Installing actionmailer (3.0.19)
   Installing arel (2.0.10)
   Installing activerecord (3.0.19)
   Installing activeresource (3.0.19)
   Installing json (1.7.6)
   Using bundler (1.3.0.pre.5)
   Installing rdoc (3.12)
   Installing thor (0.14.6)
   Installing railties (3.0.19)
   Installing rails (3.0.19)
   Installing sqlite3 (1.3.6)
   Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
   /usr/local/bin/ruby extconf.rb
   checking for sqlite3.h... no
   sqlite3.h is missing. Try 'port install sqlite3 +universal'
   or 'yum install sqlite-devel' and check your shared library search path (the
   location where your sqlite3 shared library is located).
   *** 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=/usr/local/bin/ruby
   --with-sqlite3-dir
   --without-sqlite3-dir
   --with-sqlite3-include
   --without-sqlite3-include=${sqlite3-dir}/include
   --with-sqlite3-lib
   --without-sqlite3-lib=${sqlite3-dir}/lib
   --enable-local
   --disable-local
   Gem files will remain installed in /tmp/build_ozcea9mu00be/vendor/bundle/ruby/1.9.1/gems/sqlite3-1.3.6 for inspection.
   Results logged to /tmp/build_ozcea9mu00be/vendor/bundle/ruby/1.9.1/gems/sqlite3-1.3.6/ext/sqlite3/gem_make.out
   An error occurred while installing sqlite3 (1.3.6), and Bundler cannot continue.
   Make sure that `gem install sqlite3 -v '1.3.6'` succeeds before bundling.
 !
 !     Failed to install gems via Bundler.
 !
 !     Heroku push rejected, failed to compile Ruby/rails app

To git@heroku.com:floating-woodland-1763.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@heroku.com:floating-woodland-1763.git'

チェックして再確認したので、確かにsqlite3バージョン1.3.6がインストールされています。私も走って得ました:

git remote -v
heroku  git@heroku.com:floating-woodland-1763.git (fetch)
heroku  git@heroku.com:floating-woodland-1763.git (push)
origin  git@github.com:(user)/first_app.git (fetch)
origin  git@github.com:(user)/first_app.git (push)

どうすればいいのかわかりません、助けてください。=)

4

1 に答える 1

0

Heroku では sqlite を使用できません。彼らは PostgreSQL の無料の開発版を提供しています。Web インターフェイスまたはコマンドラインで次のように設定できます。

heroku addons:add heroku-postgresql:dev

もちろん、アプリが特定のサイズに達すると Heroku が課金を開始するため、このデータベースの使用には制限があります。アドオンのログイン資格情報を取得する必要があります。これを行う最も簡単な方法は、Heroku.com のアプリに移動し、PG アドオンをクリックして、ドロップダウンから [Active Record] を選択することです。config/database.ymlHeroku DB に接続するためにファイルに必要な YAML が実際に表示されます。

gem 'pg'gemfileに追加する必要があります。Heroku では、開発マシンに PG をインストールすることをお勧めしていますが、そうしたくない場合は、pg gem を .xml の下に追加するだけでかまいませんgroup :production

結論: Heroku では sqlite を使用できません。それが契約を破る場合は、Amazon EC2 またはそこにある他の何千ものホスティング サイトのいずれかをチェックしてください。

于 2013-01-12T18:41:12.117 に答える