Rails 3.2 中的 PostgreSQL DATALINK 类型
Posted
技术标签:
【中文标题】Rails 3.2 中的 PostgreSQL DATALINK 类型【英文标题】:PostgreSQL DATALINK type in Rails 3.2 【发布时间】:2014-06-25 20:52:33 【问题描述】:我想在 Rails 3.2 中使用 DATALINK 类型 (https://wiki.postgresql.org/wiki/DATALINK),但不支持。
使用此迁移文件:
def up
change_column :images, :image_url, :datalink
change_column :images, :source_url, :datalink
end
这会在迁移过程中显示:
PG::UndefinedObject: ERROR: type "datalink" does not exist
我尝试过使用https://github.com/dockyard/postgres_ext/tree/1-0-stable,但得到了相同的输出。
任何的想法?
或者,如何在不使用:string
的情况下安全地存储URL,因为它被转换为type character varying(255)
,这有点受限:
PG::StringDataRightTruncation: ERROR: value too long for type character varying(255)
而且使用:text
感觉不像,最好的方法:P
【问题讨论】:
由于您使用的是 Postgres,text
很好。如果您愿意,也可以将更长的limit
选项传递给string
。
【参考方案1】:
PostgreSQL 没有 datalink
类型。
您链接到的 wiki 页面是一个设计文档。我添加了一些文字来说明这一点:
这是一份设计文档,描述了 PostgreSQL 中可能尚不存在的功能的规划。请参阅您的版本的官方文档以获取有关可用功能的信息。
只需 use the PostgreSQL text
datatype 或告诉 rails 不限制长度 - PostgreSQL 不要求 varchar
有长度限制,只是 Rails 愚蠢的默认设置创建了该限制。
【讨论】:
呵呵,多谢指教! (顺便说一句,“yoir”中有一个错字)以上是关于Rails 3.2 中的 PostgreSQL DATALINK 类型的主要内容,如果未能解决你的问题,请参考以下文章
为啥我的 PostgreSQL 数组索引没有被使用(Rails 4)?
我在哪里可以阅读更多关于 Rails 3.2 的数据存储与文本字段中的键值对?