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假定所有其他版本都有一個內置的類......當然他們不。

這是一個真正無法修復的集成系統錯誤。抱歉。 :(