mysql - Heroku 安装亚马逊 RDS : mysql or mysql2?

标签 mysql ruby-on-rails-3 heroku amazon-ec2 mysql2

我在 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正常吗?我添加了它。我用

改变了我的 Gemfile
gem '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/

相关文章:

php - 多个表的外键

mysql - 根据可变条件选择多个单个(LIMIT 1)记录

ruby-on-rails - 没有路由匹配 [GET] "/"

heroku - Rails 6 和 Tailwind CSS 不会部署到 Heroku

python - Django -- 单个queryset(大数据集)中每个对象的最新相关状态记录

mysql - Postgres,创建两列之间值的唯一性

python - 将静态 Assets 从本地机器部署到 heroku - 无法打开文件 'manage.py' : [Errno 2] No such file or directory

ruby-on-rails - Rails 中的图像在生产中中断

MySQL - 一对多连接语句返回重复项

ruby-on-rails - 带有 Authlogic 和调用 reset_session 的 Rails 3