[RoR] Rails unittest一个小bug 博客分类: Ruby RailsMySQLPostgreSQLRuby单元测试
程序员文章站
2024-02-16 08:00:52
...
之前为了省事,数据库配置如下:
正常运行没什么问题。后来发现在运行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。
<!---->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
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。