2011-01-10 48 views
2

版本的Rails 2.3.8 =不一致Rails的数据库架构生成的布尔字段

当比较两个我的网站,每个模式具有几乎相同的代码库,我发现了一些很奇怪的。对于确切的同桌,一个网站的架构显示:

t.integer "member_feed", :limit => 1, :default => 1 

及其他:

t.boolean "member_feed", :default => true 

有在创建这两个方面没有区别。实际上,第一个实际上是在网站创建时从第二个中提取的。这第一个模式至少有40个不同的情况,布尔显示不正确,我必须进入并用change_column迁移进行更改。请注意,当布尔型未明确定义时,功能上肯定存在差异。

任何人都有一个想法,可能会造成这种情况?谢谢。

+0

您是否为每个数据库(PostgreSQL,SQLite3,MySQL等)使用不同的数据库?您可以发布在数据库中创建该字段的迁移吗? – 2011-01-10 21:57:33

回答

2

当您从不同的操作系统运行迁移时会发生这种情况。这不是rails的mysql有问题,但是实际上是 mysql。

它的某些版本只是不存储限制和其他标志......通常是实际上有一个内置布尔类的事实,因此消除了极限=> 1(你会发现它也没有存储一些版本的“精度”的十进制值)

问题来了,因为mysql假定所有其他版本都有一个内置的类......当然他们不。

这是一个真正无法修复的集成系统错误。抱歉。 :(