我还是Ruby on Rails的新手,我是Heroku的新手。
我已经将Rails应用程序设置为在开发和生产中使用postgres而不是sqlite3,并且我在我的Gemfile中添加了“gem'pg'”。在本地,我的应用程序运行正常。
让它在Heroku上运行是另一回事。在我将我的应用程序推送到Heroku之后,当我输入“heroku run rake db:migrate”时,它告诉我,“rake aborted!指定'postgresql'用于数据库适配器,但是没有加载gem。添加{{1你的Gemfile。“
是的,gem 'pg'
在我的Gemfile中,但我仍然收到此错误。
是什么给出了?
以下是我的Gemfile现在的样子:
gem 'pg'
这是我的database.yml的样子:
source 'https://rubygems.org'
ruby '2.0.0'
gem 'rails', '4.0.1'
gem 'pg'
group :assets do
end
gem 'bcrypt-ruby', '~> 3.1.2'
gem 'haml'
gem 'devise', '3.0.0.rc'
gem 'protected_attributes'
gem 'sass-rails', '4.0.1'
gem 'uglifier', '2.1.1'
gem 'coffee-rails', '4.0.1'
gem 'jquery-rails', '3.0.4'
gem 'turbolinks', '1.1.1'
gem 'jbuilder', '1.0.2'
gem 'knockout-rails'
# To use ActiveModel has_secure_password
# gem 'bcrypt-ruby', '~> 3.0.0'
# To use Jbuilder templates for JSON
# gem 'jbuilder'
# Use unicorn as the app server
# gem 'unicorn'
# Deploy with Capistrano
# gem 'capistrano'
# To use debugger
# gem 'debugger'
group :doc do
gem 'sdoc', '0.3.20', require: false
end
group :production do
gem 'unicorn'
gem 'rails_12factor', '0.0.2'
end
当我尝试在heroku上迁移时,这是完整的错误日志。 (再次,在当地我很好。如果重要的话,我在MacBook本地工作。)
development:
adapter: postgresql
encoding: unicode
database: financemeter
pool: 5
password:
test:
adapter: postgresql
encoding: unicode
database: financemeter
pool: 5
timeout: 5000
production:
adapter: postgresql
database: dbe67fgdnnqg88
pool: 5
timeout: 5000
user: njatxlpjjrzfoe
password: HULxOtPALAk4FnzZe-_737TvPc
答案 0 :(得分:1)
您的计算机上是否安装了postgresql?
如果没有,请使用自制软件来安装页面
安装完成后,请确保初始化pg数据存储区。
另外,根据你的pg的安装方式,你可能需要在database.yml文件中指定用户名和主机
username: someuser_on_pg
host: localhost
希望有所帮助