我已经使用托管在远程服务器上的 mysql 数据库将 rails 应用程序部署到 heroku。为此,我添加了 heroku 插件“cleardb”并设置正确的 ENV Config vars 指定:
DATABASE_URL = mysql2://user:password@host?reconnect=true
我还为三个分支设置了 Heroku 持续部署,(分支-> 环境)
develop -> devint,
staging -> staging,
master -> production
持续部署工作正常,数据库设置也很好(因为当我在 rails 应用程序中创建记录时,我可以在远程 mysql 主机中看到数据)。
我的问题是,当我启用 HEROKU CI 时,每次构建都会失败并出现错误提示Mysql2::Error: Can't connect to MySQL server on '127.0.0.1' (111)
这里的完整错误:https ://gist.github.com/siddhantbhardwaj/dab7c435815e7729d0f70081449f21ff#file-gistfile1-txt
当 Heroku CI 尝试rake db:schema:load_if_ruby
为 :test 环境执行时会发生这种情况
我的 database.yml 看起来像:
default: &default
adapter: mysql2
encoding: utf8
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
development:
<<: *default
database: what_course_development
username: user
password: password
socket: /tmp/mysql.sock
test:
<<: *default
database: what_course_test
devint:
<<: *default
url: <%= ENV['DATABASE_URL'] %>
staging:
<<: *default
url: <%= ENV['DATABASE_URL'] %>
production:
<<: *default
url: <%= ENV['DATABASE_URL'] %>