之前為了省事,數據庫配置如下:
development_pgsql:
??adapter:?postgresql
??database:?myproject_development
??username:?postgres
??password:?
development_mysql:
??adapter:?mysql
??database:?myproject_development
??username:?root
??password:?
development:
??development_mysql
test:
??adapter:?postgresql
??database:?myproject_test
??username:?postgres
??password:?
production:
??development
正常運行沒什么問題。后來發現在運行rake test作單元測試時會報錯,把拷貝過來就沒有問題。不過rubyonrails.com上不允許匿名提交bug,還真麻煩。
另外發現config.active_record.schema_format = :ruby配置下,postgresql的timestamp字段默認值current_timestamp不能正確復制到數據庫。經檢查它是使用db:schema:dump復制下數據庫模式,再使用db:schema:load生成測試數據庫模式的,這個模塊為了各數據庫統一,會去掉那些不一致的默認值。解決辦法是設置config.active_record.schema_format = :sql。