我正在尝试部署具有多个数据库的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进行硬编码,但无法正常工作。这是环境变量的重要部分:
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 vars”的内容,但没有进行任何更改
module Indicadoresrails
class Application < Rails::Application
config.load_defaults 5.2
config.assets.initialize_on_precompile = false
end
end
请帮助:(
答案 0 :(得分:0)
确保URI.parse(<DATABASE_DAVILA_URL here>)
成功。您的数据库用户名/密码中可能包含非URL安全字符。您需要URI.encode
。