生产和开发环境中的不同DB类型布尔值

时间:2013-03-16 07:06:01

标签: ruby-on-rails-3 postgresql-9.1

我有一个迁移,包括以下类型:

create_table :products do |t|
    t.boolean :overdue
end

在我的开发设置中(Postgresql 9.1,rails 3.2.11)我必须测试

p.overdue == "t" # or
p.overdue == "f"

p.overdue?或p.overdue == true或p.overdue == false不起作用。

在heroku上(我怨恨创建了测试应用程序,所以我猜ts cedar,PG 9.1也是如此)我可以测试p.overdue?或者p.overdue == true,而对字符串“t”或“f”的测试不起作用。

我在开发设置中缺少一些配置选项吗?

1 个答案:

答案 0 :(得分:1)

schema.rb有t.binary,而迁移表示t.boolean。这是我纠正的一个错误,但我只是运行

rake db:reset 

仅重新加载架构,但不运行迁移。要么更正架构并再次运行db:reset,要么运行更好:

rake db:drop
rake db:create
rake db:migrate