这很奇怪。我肯定是在指定适配器,它甚至会puts
在 rake 任务的第一行打印散列。db:migrate 也可以。
$ rake db:create
{"adapter"=>"mysql2", "encoding"=>"utf8", "reconnect"=>false, "database"=>"craigslist_development", "pool"=>5, "username"=>"root", "password"=>"splitzo", "host"=>"localhost"}
rake aborted!
database configuration does not specify adapter
有任何想法吗?
如果您需要更多信息,请告诉我。
更新:
我确信当我运行rake db:migrate时环境设置正确
我注意到它两次运行 ActiveRecord 的建立连接,第二次没有得到哈希。我添加了一些调试代码
spec = spec.symbolize_keys
puts 'test:' + spec.key?(:adapter).to_s
我明白了:
{"adapter"=>"mysql2", "encoding"=>"utf8", "reconnect"=>false, "database"=>"appname_development", "pool"=>5, "username"=>"user", "password"=>"password", "host"=>"localhost"} (just prints hash object)
test:true (first time)
test:false (second time)
rake aborted!
database configuration does not specify adapter
本质上就是这样,因为它适用于其他任务,我认为格式很好,没有奇怪的空白问题等:
development:
adapter: mysql2
encoding: utf8
reconnect: false
database: appname_development
pool: 5
username: user
password: password
host: localhost
一定是我的 Rakefile 中的逻辑有问题?