繁体   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