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

uma*_*mar 3 ruby mysql ruby-on-rails heroku ruby-on-rails-3

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

rails new -J -d mysql appname
git init
git add .
git commit
heroku create
Run Code Online (Sandbox Code Playgroud)

并创建了应用程序.但当我这样做时:

heroku rake db:create --trace
Run Code Online (Sandbox Code Playgroud)

我明白了:

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
Run Code Online (Sandbox Code Playgroud)

当我这样做:heroku rake db:migrate --trace,然后跟踪有如下行:

/app/.bundle/gems/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:590:in
Run Code Online (Sandbox Code Playgroud)

这表明它使用的是红宝石1.8而不是红宝石1.9.2

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

Joh*_*non 7

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

heroku create myapp --stack bamboo-mri-1.9.2
Run Code Online (Sandbox Code Playgroud)

要将您的应用迁移到1.9.2,您需要发布

heroku stack:migrate bamboo-mri-1.9.2
Run Code Online (Sandbox Code Playgroud)

迁移后,您需要重新申请(如果我没记错的话)