我要做的就是在 Heroku 上部署我的 Rails 应用程序,并在 RDS 上使用一个数据库实例,这看起来应该很简单。
我正在使用 mysql2 适配器database.yml
并已推送到 heroku 并根据此答案添加了我的数据库实例。我基本上已经跟随它到了T,我没有收到missing gem
错误。但这就是heroku logs
揭示的内容:
/app/vendor/bundle/ruby/1.9.1/bundler/gems/mysql2-e5992664a7bc/lib/mysql2/client.rb:56:in connect': Can't connect to MySQL server on 'nickcoxrails.cud3e2tma07q.us-east-1.rds.amazonaws.com' (110) (Mysql2::Error)
另请注意,我的 RDS 实例位于 us-east,我听说这是一个问题here。
在我的 gemfile 中,我有:
gem 'mysql2', :git => 'git://github.com/brianmario/mysql2.git'
对于我的 mysql2 gem,因为这是我可以让它在本地工作的唯一方法(因为第一个答案使用 < 0.3 的版本在我的本地 Rails 服务器上给了我一个错误,因为我在 Rails 3.2.6 上),尝试了事情的数量(我真的很难让 mysql 在我的本地机器上运行)。
我肯定已经根据这个答案添加了安全组,并根据这个答案添加了 mysql2 数据库。我还在我的 heroku 帐户中添加了 RDS 插件。我跑了一遍又一遍,但是由于我将本地数据库导出到了我的 RDS 实例(我需要保持该数据完好无损),所以这些都没有任何新功能。而且我可以通过 Sequel Pro 连接到我的 RDS 实例,所以我知道这不是凭据问题。rake db:create
rake db:schema:load
rake db:migrate
这是我的第一个 Rails 应用程序部署,所以不要害怕降低你的答案,给我相当于“它是否已插入?” heroku/Rails/RDS/等的技术支持问题。