Mysql 如何告诉heroku在新创建的应用程序中使用rails 3和ruby 1.9.2?

Mysql 如何告诉heroku在新创建的应用程序中使用rails 3和ruby 1.9.2?,mysql,ruby-on-rails,ruby,ruby-on-rails-3,heroku,Mysql,Ruby On Rails,Ruby,Ruby On Rails 3,Heroku,我使用rvm ruby1.9.2p0和rails 3.0.1在我的机器上创建了一个新应用程序,并执行了以下操作: rails new -J -d mysql appname git init git add . git commit heroku create 然后应用程序被创建。但当我这样做的时候: heroku rake db:create --trace 我得到: Can't connect to local MySQL server through socket '/var/run/

我使用rvm ruby1.9.2p0和rails 3.0.1在我的机器上创建了一个新应用程序,并执行了以下操作:

rails new -J -d mysql appname
git init
git add .
git commit
heroku create
然后应用程序被创建。但当我这样做的时候:

heroku rake db:create --trace
我得到:

Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Couldn't create database for {"reconnect"=>false, "encoding"=>"utf8", "username"=>"root", "adapter"=>"mysql2", "database"=>"app_production", "pool"=>5, "password"=>nil, "socket"=>"/var/run/mysqld/mysqld.sock"}, charset: utf8, collation: utf8_unicode_ci
(in /app)
** Invoke db:create (first_time)
** Invoke db:load_config (first_time)
** Invoke rails_env (first_time)
** Execute rails_env
** Execute db:load_config
** Execute db:create
当我这样做的时候: heroku rake db:migrate--trace,那么该跟踪有如下行:

/app/.bundle/gems/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:590:in
这表明它使用的是Ruby1.8而不是Ruby1.9.2


如何在我的heroku应用程序上创建数据库并使其使用ruby 1.9.2p0?

如果您已经在heroku上创建了应用程序,它将默认为您发现的1.8.7。您可以在创建应用程序时指定用于创建应用程序的堆栈

heroku create myapp --stack bamboo-mri-1.9.2
要将应用程序迁移到1.9.2,您需要

heroku stack:migrate bamboo-mri-1.9.2

一旦迁移,您将需要重新发布应用程序(如果我没记错的话)

问题不在于Ruby或Rails版本

这里的问题是,您试图在运行时使用MySQL


在中,您可以找到迁移到不同Heroku堆栈的说明。

有趣的是,Heroku没有重写database.yml文件以使用其share Postgres实例。只是为了完全正确,Heroku支持MySQL一点问题都没有-你可以使用Amazon RDS插件,或者在Heroku之外连接到你自己的MySQL实例有趣,@John回答了作者提出的问题,但@Simone给出了“真实”的答案。那么我应该选哪一个呢?用心去做:)记住Heroku确实支持MySQL!:)@约翰:好的,我决定投你的一票,因为@Simone没有回答实际问题。如果有人在这里用谷歌搜索,那么你的答案会更有用。