You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

配置PostgreSQL数据库时执行rails db:create报错求助

问题原因分析
  • Test环境数据库配置错误:test环境中database字段设置为db/test. postgresql,PostgreSQL不允许数据库名包含路径分隔符/,且点号后存在空格,导致Rails生成SQL时错误地将其拆分为"db/test"和" postgresql"两个部分,触发语法错误。
  • Development数据库已存在:提示Database 'MyDatabase' already exists是正常提示,说明开发环境数据库已创建,不影响后续操作,但test环境的配置错误导致命令终止。
  • YAML格式异常:development配置末尾有多余的反引号,会导致YAML解析失败;test环境的<<: *default`缩进不正确,YAML对缩进要求严格。
解决办法

修正database.yml配置,调整后的完整内容如下:

default: &default
  adapter: postgresql
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  timeout: 5000

development:
  <<: *default
  encoding: unicode
  database: MyDatabase
  host: localhost
  username: name
  password: name

# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
  <<: *default
  database: MyDatabase_test

production:
  <<: *default
  encoding: unicode
  database: MyDatabase_Production
  host: localhost
  username: name
  password: name
  role: MyRole

具体修改点:

  1. 移除development配置末尾的多余反引号`
  2. 修正test环境的缩进,确保<<: *default与其他配置项对齐
  3. 将test环境的database字段改为符合PostgreSQL规范的名称(如MyDatabase_test,避免路径、空格和特殊格式)

修改完成后,重新执行命令:

rails db:create

内容的提问来源于stack exchange,提问作者Olga N

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 07:20:28