URI :: InvalidURIError: неверный URI (не URI?) При развертывании приложения HEROKU с несколькими базами данных - PullRequest
0 голосов
/ 13 марта 2019

Я пытаюсь развернуть приложение heroku с несколькими базами данных (сейчас 2). Я следовал этому уроку

Руководство по нескольким базам данных

, который сказал, что мне нужно настроить такой файл

production:
  adapter: postgresql
  encoding: utf8
  url:  <%= ENV["DATABASE_DAVILA_URL"] %>
  pool: <%= ENV["DB_POOL"] || 5 %>

Проблема в том, что когда я пытаюсь развернуться на heroku, эта ошибка происходит

-----> Detecting rake tasks
-----> Preparing app for Rails asset pipeline
       Running: rake assets:precompile
       rake aborted!
       URI::InvalidURIError: bad URI(is not URI?): <%= ENV["DATABASE_DAVILA_URL"] %>

Это похоже на неправильный анализ ссылки, потому что я даже пытался жестко закодировать URI в переменной и не работал. Вот важная часть env vars:

DATABASE_DAVILA_URL:         postgres://somethinguser:somethingpass@somethinghost.compute-1.amazonaws.com:5432/somethingdb
DATABASE_URL:                postgres://somethinguser:somethingpass@somethinghost.compute-1.amazonaws.com:5432/somethingdb
HEROKU_POSTGRESQL_MAUVE_URL: postgres://somethinguser:somethingpass@somethinghost.compute-1.amazonaws.com:5432/somethingdb

Я следовал почти каждому уроку, который нашел, но продолжаю получать ту же ошибку. Я даже пытался что-то, что я читал, как "не загружать переменные env в фазе предварительной компиляции" с этим кодом, но ничего не изменилось

module Indicadoresrails
  class Application < Rails::Application

    config.load_defaults 5.2

    config.assets.initialize_on_precompile = false
  end
end

Пожалуйста, помогите: (

1 Ответ

0 голосов
/ 13 марта 2019

Убедитесь, что URI.parse(<DATABASE_DAVILA_URL here>) успешно. Скорее всего, у вас есть не-URL безопасные символы в вашей базе данных имя пользователя / пароль. Вам нужно будет URI.encode их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...