运行heroku run rake db:create
时收到以下错误:
Running `rake db:create` attached to terminal... up, run.6027
Could not find gem 'pg (>= 0.11.0) ruby' in the gems available on this machine.
Run `bundle install` to install missing gems.
在config / database.yml中我使用的是默认的mysql2数据库:
production:
adapter: mysql2
database: redmine
host: localhost
...
development:
adapter: mysql2
...
test:
adapter: mysql2
...
所以我猜'pg(> = 0.11.0)ruby'不需要安装。我错了吗?
我正在使用Windows XP。这是我第一次使用Ruby。
更新1
我忘了说bundle install
没有错误地正确完成。
另一方面,Gemfile具有以下代码:
adapters.each do |adapter|
case adapter
when 'mysql2'
gem "mysql2", "~> 0.3.11", :platforms => [:mri, :mingw]
gem "activerecord-jdbcmysql-adapter", :platforms => :jruby
...
when /postgresql/
gem "pg", ">= 0.11.0", :platforms => [:mri, :mingw]
gem "activerecord-jdbcpostgresql-adapter", :platforms => :jruby
...
所以再一次,我想在执行命令when /postgresql/
时永远不应该进入heroku run rake db:create
。我是对的吗?
答案 0 :(得分:1)
在为数据库创建运行rake任务并完成所有gem依赖项之前,您需要执行 bundle install 。即使您使用的是mysql而不是postgres,这也是必需的,因为' pg gem'在Gemfile中指定,您必须通过运行 bundle install 命令确保Gemfile中的所有gem依赖项都可供您的应用程序使用。
在您使用mysql的情况下,您不需要使用' pg gem'并可以在Gemfile中删除或评论它。
答案 1 :(得分:1)
参见上面的讨论......这是一个Heroku应用程序,它需要配置一个数据库,或者它会尝试强制Postgres作为依赖来帮助你。