0

heroku が使用する無料のホスティングを使用しようとしています。多くのオプションを試しましたが、heroku ログに「Postgresql アダプターをインストールしてください: `gem install...」というエラーが表示され続けます。

まず、ほぼ 1 年前に同じエラーが発生しました。heroku がこれを修正することを期待していました。

それを機能させるにはどうすればよいですか?

ここに私のGEMFILEがあります:

  1 source 'https://rubygems.org'
  2
  3 gem 'rails', '3.2.14'
  4
  5 # Bundle edge Rails instead:
  6 # gem 'rails', :git => 'git://github.com/rails/rails.git'
  7
  8 gem 'activerecord-postgresql-adapter'
  9 gem 'typhoeus'
 10
 11 # Gems used only for assets and not required
 12 # in production environments by default.
 13 group :assets do
 14   gem 'sass-rails',   '~> 3.2.3'
 15   gem 'coffee-rails', '~> 3.2.1'
 16   gem "twitter-bootstrap-rails"
 17   # See https://github.com/sstephenson/execjs#readme for more supported runtimes
 18   # gem 'therubyracer', :platforms => :ruby
 19
 20   gem 'uglifier', '>= 1.0.3'
 21 end
 22
 23 group :development do
 24   gem 'debugger'
 25 end
 26
 27 group :development, :test do
 28   gem 'capybara'
 29   gem 'rspec-rails', '~> 2.0'
 30   gem 'factory_girl'
 31   gem 'mysql2'
 32 end
 33
 34 group :test do
 35   gem 'vcr'
 36 end
 37
 38 group :production do
 39   gem 'pg'
 40 end
 41
 42 gem 'proxylocal'
 43
 44 gem 'devise'
 45 gem 'jquery-rails'
 46 gem 'turbolinks'

そして私の config/database.yml ファイル:

  1 # MySQL.  Versions 4.1 and 5.0 are recommended.
  2 #
  3 # Install the MYSQL driver
  4 #   gem install mysql2
  5 #
  6 # Ensure the MySQL gem is defined in your Gemfile
  7 #   gem 'mysql2'
  8 #
  9 # And be sure to use new-style password hashing:
 10 #   http://dev.mysql.com/doc/refman/5.0/en/old-client.html
 11 development:
 12   adapter: postgresql
 13   encoding: utf8
 14   reconnect: false
 15   database: resource-management_development
 16   pool: 5
 17   username: root
 18   password:
 19   socket: /tmp/mysql.sock
 20
 21 # Warning: The database defined as "test" will be erased and
 22 # re-generated from your development database when you run "rake".
 23 # Do not set this db to the same as development or production.
 24 test: &test
 25   adapter: postgresql
 26   encoding: utf8
 27   reconnect: false
 28   database: resource-management_test
 29   pool: 5
 30   username: root
 31   password:
 32   socket: /tmp/mysql.sock
 33
 34 production:
 35   adapter: postgresql
 36   encoding: utf8
 37   reconnect: false
 38   database: resource-management_production
 39   pool: 5
 40   username: root
 41   password:
 42   socket: /tmp/mysql.sock
 43
 44 cucumber:
 45   <<: *test

完全なエラーは次のとおりです。

/app/vendor/bundle/ruby/2.0.0/gems/bundler-1.3.2/lib/bundler/rubygems_integration.rb:214:in `block in replace_gem': Please install the postgresql adapter: `gem install activerecord-postgresql-a
dapter` (pg is not part of the bundle. Add it to Gemfile.) (LoadError)

誰かがそれを解決して、私と多くの人々がこの神に見捨てられたプラットフォーム heroku にデプロイできるようにすることはできますか?

PS:開発中に「gem 'mysql2'」があることに気付くかもしれません。これは、ここの別のソリューションから取得したためです。とにかくそれなしでは機能しません。

4

3 に答える 3

1

Heroku を使用している場合、database.yml に production グループは必要ありません。データベースを本番環境で動作させるには、次を実行する必要があります。

heroku run rake db:migrate

これをローカルで使用するには、次のセットアップを確認してください: https://devcenter.heroku.com/articles/heroku-postgresql#local-setup

mysql を使用している場合は、テスト構成と開発構成を変更してください。ただし、3 つの環境すべてで同じデータベース システムを使用することをお勧めします。

于 2013-08-19T17:23:47.903 に答える
0

これによると: https://devcenter.heroku.com/articles/rails3 gem を使用する必要がありますpg。だから多分それが問題です。

于 2013-08-19T17:13:15.833 に答える
0

gem 'activerecord-postgresql-adapter'の8行目でこれを使用している理由がわかりませんgemfile。この行を削除してみましたか?

于 2013-08-19T17:35:42.047 に答える