Rails: Heroku CI: Mysql2 :: Ошибка: не удается подключиться к серверу MySQL на 127.0.0.1 (111) для тестовой среды

0

Я развернул приложение rails для heroku, используя базу данных mysql, размещенную на удаленном сервере. Для этого я добавил админу героя "cleardb" и установил правильные настройки конфигурации ENV Config:

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'] %>
Теги:
cleardb

1 ответ

0

Ознакомьтесь с нижеприведенным предложением о настройке базы данных.yml из DATABASE_URL:

DatabaseUrl.to_active_record_hash('postgres://uuu:[email protected]:1234/abc')

Это даст следующий результат:

{:adapter=>"postgres", :host=>"127.0.0.1", :port=>1234, :database=>"abc", :user=>"uuu", :password=>"xxx"}

Для получения дополнительной информации см. Файл seamusabshere database_url.

  • 0
    Привет, Darpan, вы хотите, чтобы я использовал приведенную выше команду для преобразования DATABASE_URL в хэш ruby и использовал его в database.yml? Если так, то я думаю, что настройки heroku DATABASE_URL работают нормально, просто сборка Heroku CI завершается неудачно, когда она пытается подготовить базу данных для тестовой среды.
  • 0
    Да, мне предложили то же самое, и согласно вашему комментарию, я думаю, что вы исправили проблему, спасибо Сиддхант.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню