本地环境Blazer配置错误排查:数据源及URI无效问题
Blazer Gem 配置错误排查
问题背景
- Blazer安装说明指出生产环境需指定数据库:
For production, specify your database:
ENV["BLAZER_DATABASE_URL"] = "postgres://user:password@hostname:5432/database"
- 本地开发环境触发错误:
ActionView::Template::Error (undefined method `each' for nil:NilClass settings["data_sources"].each do |id, s|
- 需在
config/blazer.yml配置数据源,PostgreSQL日志显示服务运行地址:
2024-01-14 10:14:44.406 CET [1978] LOG: listening on IPv4 address "127.0.0.1", port 5432 2024-01-14 10:14:44.407 CET [1978] LOG: listening on Unix socket "/tmp/.s.PGSQL.5432"
- 配置后触发URI无效错误:
data_sources: main: url: "postgres://kk@example.com:12345677@127.0.0.1:5432/boilerauth_development"报错:
URI::InvalidURIError (bad URI(is not URI?): "postgres://kk@example.com:12345677@127.0.0.1:5432/boilerauth_development"):
配置错误分析
- URI格式不符合规范:PostgreSQL连接URI的标准格式为
postgres://用户名:密码@主机:端口/数据库名,你的配置中出现了两个@符号,导致URI解析失败。 - 用户名格式错误:
kk@example.com属于无效的PostgreSQL用户名格式,用户名无需携带域名,直接填写kk即可。 - 可能存在多余空格:报错信息中URI前有空格,需检查
blazer.yml里的url值是否包含前后多余空格。
修正后的配置示例
data_sources: main: url: "postgres://kk:12345677@127.0.0.1:5432/boilerauth_development"
内容的提问来源于stack exchange,提问作者Jerome
相关产品推荐
相关产品推荐

