2011-02-01 46 views
0

耙分貝:模式:轉儲 耙分貝:測試:準備移植一個Rails 1.2應用程序,schema.rb代弄亂

所有使用下面的生成schema.rb:

t.column「cost_per_license 」:小數,:極限=> 8,:默認=>#

運行耙分貝:遷移不會導致此問題,因爲它僅使用遷移文件(而不是將所得schema.rb)

有沒有人在Rails 1.2中看到過這個?以下行產生該模式:

126_create_accounts.rb:t.column:cost_per_license,:小數,:精密=> 8,:刻度=> 2,:默認=> 0

我試圖紅寶石1.8.6,1.8.7和Rails 1.2.1和1.2.6 - 生成的所有schema.rb都具有相同的語法錯誤。

回答

1

想通了:

有一個供應商/插件(特別spatial_adapter),這是猴子修補SchemaDumper的表()函數有一個可怕的舊版本的ActiveRecord的表(的)(無論是真的老了,或只是真的可怕)。

+0

非常感謝發佈此回覆!這是修復在這裏:https://github.com/fragility/spatial_adapter/commit/1452247eace22e79a4e3785140dbb8b0dff32fe4 – robd 2011-06-06 16:57:40

1

如果您在生成schema.rb時遇到問題,那麼您可以重寫模塊ActiveRecord類SchemaDumper和生成特定行的方法,並將':default =>#'替換爲':default = > 0'

根本原因你可以在特定的表上做一個show create table(如果你使用的是mysql)?對於所有具有默認值的列或只有cost_per_license的列,它都是通用的嗎?