簡體   English   中英

Rails 3.2模式轉儲使用postgres_ext gem將所有UUID列轉換為text和mangles數組聲明

[英]Rails 3.2 schema dump turns all UUID columns to text and mangles array declarations with postgres_ext gem

使用Ruby 2.0.0-p195和postgres_ext gem的 Rails 3.2.13和v0.3.1。

我似乎經常使用Rails進行模式轉儲(而不是SQL結構轉儲),其中模式轉儲器將UUID列轉換為文本列,將數組轉換為默認為"{}"文本列。 諸如rake db:schema:dump類的常規操作會導致破壞性差異,如下所示:

-    t.string   "dbas",         :default => [],                 :array => true
-    t.string   "industries",   :default => [],                 :array => true
+    t.text     "dbas",         :default => "{}"
+    t.text     "industries",   :default => "{}"
-    t.uuid     "uuid"
+    t.text     "uuid"

如果我手動檢查數據庫的結構或只是詢問Rails它認為給定屬性有哪種類型的列類型,一切看起來都很好。

當然,這個問題會造成各種各樣的破壞。 如果沒有切換到SQL結構轉儲,我怎樣才能獲得正確的架構轉儲?

使用Rails 3.2,您需要使用rake db:structure:dump來轉儲模式的SQL版本而不是Ruby版本。

使用rake db:schema:dump ,Rails 4會處理更多類型,這正是您要查找的內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM