我在 Heroku 中安装了 Amazon RDS 附加组件,并在 Amazon AWS 中创建了一个 OK 实例。但是我跑不了
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正常吗?我添加了它。我用
改变了我的 Gemfilegem 'mysql2', '< 0.3.7'
和我的 database.yml
production:
adapter: mysql2
database: db/production.mysql2
在它被设置为 sqlite3 之前。
我是新手,这是我想要部署到 Amazon AWS 的第一个应用程序,所以我可能错过了一些明显的东西!任何想法 ?
最佳答案
我明白了!我忘记了
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
尽情享受吧! :-)
关于mysql - Heroku 安装亚马逊 RDS : mysql or mysql2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15436248/