【问题标题】:Datamapper type for char (aka character) field typechar(又名字符)字段类型的数据映射器类型
【发布时间】:2012-05-14 15:12:58
【问题描述】:

我正在使用开源数据库。我正在尝试使用 DataMapper 将其映射到类,稍后我将更改模型驱动的近似值,而不是数据库驱动的近似值。

但首先我想以精确的方式映射开源数据库。该数据库是 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 类型。我回答问题的解决方案。

【问题讨论】:

  • 您可以将这些字段更改为varchar 或(更好)text 吗?在 PostgreSQL 中,char 通常是数据类型的错误选择。支持它是因为它在标准中,但最好避免使用它。
  • 感谢您的回答@kgrittn。但正如我所说,我想映射到原始且完整的数据库,并从那里以模型为基础进行更改...
  • 我猜你需要找到一个能处理这种古老数据类型的 gem。

标签: ruby ruby-on-rails-3 postgresql orm ruby-datamapper


【解决方案1】:

godfat,在dm-is-reflective工作的人很快解决了这个问题:)非常感谢他!

https://github.com/godfat/dm-is-reflective/issues/3#issuecomment-5726650

【讨论】:

    猜你喜欢
    • 2018-01-08
    • 2016-11-26
    • 1970-01-01
    • 1970-01-01
    • 2018-12-02
    • 1970-01-01
    • 1970-01-01
    • 2016-09-16
    • 2023-02-18
    相关资源
    最近更新 更多