есть ли способ отредактировать yml-файл herokus

StackOverflow https://stackoverflow.com/questions/1229452

  •  22-07-2019
  •  | 
  •  

Вопрос

Я настраиваю удаленное соединение локально, и мне нужно отправить его в heroku.Когда я отправил его на heroku, я получил сообщение об ошибке со словами:

RemoteDBName не настроен.

Я просто предполагаю (также искал и видел), что heroku использует свой собственный файл config.yml.

Это было полезно?

Решение

Разобрался с этим для всех, кто подключается к удаленной базе данных на heroku, которая может увидеть это:

Heroku заменяет ваш файл database.yml своим собственным, перезаписывая все, что есть в вашем.

Чтобы обойти это:

  • Создайте новый файл в вашей папке конфигурации, назовите его как угодно.yml
  • Настройте строку подключения в этом файле.
  • Создайте новый файл в вашей папке инициализаторов, я назвал свой load_remote.rb.В этом файле напишите следующую строку кода:

    REMOTE_DB = YAML.load_file("#{RAILS_ROOT}/config/YOURNEWFILEHERE.yml")

  • Установите ваше соединение в любой из удаленных моделей с помощью этой строки кода:

    establish_connection Remote_DB['Как бы вы ни назвали свою строку подключения в файле yml здесь']

Другие советы

Позвольте мне показать вам, как выполняется конфигурация базы данных при работе с Heroku. Я думаю, что это может быть немного расплывчатым в документации, некоторые люди запутываются по этому поводу. Давайте использовать консоль:

zero:~/Projects/crantastic $ heroku console
Ruby console for crantastic.heroku.com
>> puts File.read(Rails.configuration.database_configuration_file)
---
production:
  encoding: unicode
  adapter: postgresql
  username: something_random
  port: 5432
  host: somewhere.at.heroku
  database: something_random
  password: something_random

=> nil
>>

Heroku на практике заменяет ваши приложения database.yml, когда вы отправляете свой сайт на их серверы. Ваши данные будут храниться на одном из их модных серверов PostgreSQL, независимо от того, что вы используете локально - это означает, что вам вообще не нужно думать о database.yml (за исключением целей разработки, естественно). Тапс гарантирует, что все дБ агностик. Если вы хотите перенести свою последнюю версию db в Heroku, просто запустите heroku db: push

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top