Rails 3.2.12启动报错:database configuration does not specify adapter求助
解决ActiveRecord::AdapterNotSpecified错误:database配置未指定adapter
我碰到过好几次这个问题,大部分都是YAML格式的锅——毕竟YAML对缩进和语法的要求真的很严格。从你给出的database.yml内容来看,格式明显有问题,导致Rails无法正确解析出adapter配置项,咱们一步步来解决:
1. 修复database.yml的YAML格式
你的配置里所有键值都挤在一行,没有正确缩进,这会让YAML解析器完全读不懂。正确的格式应该是这样的(注意每个配置项前的2个空格缩进,锚点和继承语法的位置):
&config adapter: postgresql encoding: unicode pool: 5 username: postgres password: password25 host: localhost development: database: myproject_development <<: *config test: &test database: myproject_test <<: *config production: database: myproject_production <<: *config # 这里可以根据生产环境需求添加额外配置,比如不同的用户名、主机等
2. 确认文件位置与权限
- 确保
database.yml确实在项目的config/目录下,没有被误改名或者移动位置; - 在Ubuntu下,给文件设置正确的读取权限:
chmod 644 config/database.yml
3. 验证PostgreSQL服务与用户权限
- 先检查PostgreSQL服务是否在运行:
如果没运行,启动它:sudo service postgresql statussudo service postgresql start - 验证你的postgres用户能正常连接本地数据库:
输入你配置的密码psql -U postgres -h localhostpassword25,如果能成功进入psql命令行,说明用户权限没问题。
4. 手动创建数据库后启动服务器
先尝试创建开发环境的数据库:
rake db:create RAILS_ENV=development
如果数据库创建成功,再启动服务器:
rails s RAILS_ENV=development
按照这些步骤操作后,应该就能解决这个adapter未指定的错误了。
内容的提问来源于stack exchange,提问作者sk555
相关产品推荐
相关产品推荐

