Я развернул приложение rails на heroku, используя базу данных mysql, размещенную на удаленном сервере. Для этого я добавил аддон heroku 'cleardb' и настроил правильные переменные конфигурации ENV, указав:
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 env
Мой файл 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'] %>