1

我在 Heroku 中安装了 Amazon RDS 插件,并在 Amazon AWS 中创建了一个实例。但我不能跑

heroku run rake db:migrate

它以

(...)
** Invoke db:migrate (first_time)
** Invoke environment (first_time)
** Execute environment
** Invoke db:load_config (first_time)
** Execute db:load_config
** Execute db:migrate
rake aborted!
undefined method `accept' for nil:NilClass
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-    3.2.11/lib/active_record/connection_adapters/abstract/database_statements.rb:7:in `to_sql'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.11/lib/active_record/connection_adapters/abstract/database_statements.rb:38:in    `select_values'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.11/lib/active_record/migration.rb:587:in `get_all_versions'

当我创建我的实例时,我按照 Heroku 的说明进行操作:

$ heroku addons:add amazon_rds url=mysql2://user:pass@rdshostname.amazonaws.com/databasename

从那以后,我一直在与 Mysql2 战斗。首先我在 Heroku 中注意到它指向

mysql://user:pass@mydatabase.us-east-1.rds.amazonaws.com/MyFirstDb

没有像 mysql2://user 这样的 2 正常吗?我添加了它。我改变了我的 Gemfile

gem 'mysql2', '< 0.3.7'

和我的database.yml

production:
adapter: mysql2
database: db/production.mysql2

在它被设置为 sqlite3 之前。

我是新手,这是我想部署到亚马逊 AWS 的第一个应用程序,所以也许我错过了一些明显的东西!任何的想法 ?

4

1 回答 1

1

我得到了它 !我忘了

gem install activerecord-mysql2-adapter

Heroku 中的错误消息说要运行 gem install activerecord-mysql-adapter (没有 2),但是有了 2,它现在可以完美运行了!

我希望这篇文章对其他人有所帮助。所以,总而言之,这是你需要做的: 1- 在 Heroku 的附加链接中设置“2”

mysql2://user:pass@mydatabase.us-east-1.rds.amazonaws.com/MyFirstDb

2- 在您的 Gemfile 中添加一行:

gem 'mysql2', '~> 0.3.11'

3-更改您的 database.yml

production:
adapter: mysql2
database: db/production.mysql2

4-运行

gem install activerecord-mysql2
heroku run rake db:migrate

享受 !:-)

于 2013-03-15T21:03:46.960 回答