[RoR] Rails unittest一个小bug

阅读更多
之前为了省事,数据库配置如下:

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。

你可能感兴趣的:(Rails,MySQL,PostgreSQL,Ruby,单元测试)