2012-05-14 47 views
0

我正在使用開源數據庫。我試圖用DataMapper將它映射到類,後來我將在模型驅動的近似值中進行更改,而不是數據庫驅動的近似值。char(又名字符)字段類型的數據映射器類型

但首先我想以一種確切的方式來映射開源數據庫。這個數據庫是一個PostgreSQL數據庫,在某些表中有一些character類型的字段。

如何在DataMapper中映射character類型?這種類型不在primitive types中,也不在dm-types中,也不在dm-types-legacy中。

如果它提供了更多信息,實際上我不是手動編寫模型,而是使用dm-is-reflective,它自動映射現有數據庫表。它給了我以下錯誤:

/var/lib/gems/1.9.1/gems/dm-is-reflective-1.0.0/lib/dm-is-reflective/is/adapters/data_objects_adapter.rb:141:in `reflective_lookup_primitive': bpchar not found for DataMapper::Adapters::PostgresAdapter (TypeError) 

編輯 這是一個問題dm-is-reflective而不是與datamapper核心,它可以與char類型爲String類型,長度一套很好地工作。我回答了問題的解決方案。

+0

您可以將這些字段更改爲'varchar'或(更好)'text'嗎?在PostgreSQL中,'char'通常是數據類型的不好選擇。它被支持,因爲它在標準中,但避免使用它是明智的。 – kgrittn

+0

感謝您的回答@kgrittn。但正如我所說,我想做一個映射到原始和完整的數據庫,並從那裏使我的更改與模型作爲基地... –

+0

我想你需要找到一個處理這種古老的數據類型的寶石。 – kgrittn

回答