2011-01-29 84 views
0

我試圖創建一個模型的東西,如:Ruby on Rails的數據庫中忽略UUID列:創建

職位標題:字符串companyid:UUID

然而,當我運行的db:創建,它創建帶有「title」列的表格,但忽略「companyid」列。當然應用程序崩潰,因爲ActiveRecord無法找到companyid列。如果我手動添加數據庫列,應用工程(所以我知道回報率知道如何處理這種數據類型)..

我想我的數據庫配置和遷移腳本才能正確運行。我使用PostgreSQL 9.0和postgres-pg適配器。

有什麼特別的,我需要做什麼?謝謝!

回答

4

這應有助於:

Ruby on Rails: UUID as your ActiveRecord primary key

您的遷移不工作,因爲UUID是不受支持的類型。如果你看鏈接,你會看到他們使用UUID作爲列名和字符串作爲類型。他們還禁用了ID列,並將其UUID:字符串列設置爲主鍵。

Postgres適配器中還有simplified type,可能有助於瞭解爲什麼它在您手動創建列時能夠工作。雖然它只是將UUID映射到一個字符串。

修復遷移,以便他們可以處理Postgres UUID可能是一個很好的低掛水果的貢獻,如果有人有這個問題想要貢獻Rails,但考慮到Postgres UUID似乎並沒有做太多,你的應用將會有生成他們可能只是字符串的ID。

+0

Postgre絕對不會將uuids存儲爲VARCHAR2(或VARCHAR,因爲它將在非oracle數據庫中)。它存儲爲一個128位的二進制值 - 這是演員:當然可以varchar/text。 – 2011-01-29 10:57:33