나는 오픈 소스 데이터베이스로 작업하고있다. DataMapper를 사용하여 클래스에 매핑하려고합니다. 나중에 Model driven approximation 대신 Model driven approximation을 변경하려고합니다.char (일명 문자) 필드 유형에 대한 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
에 문제가 있었다 아닌 길이가 설정된 String
유형으로 char
유형과 잘 작동 할 수 datamapper
코어와 : 그것은 나에게 다음과 같은 오류를 제공합니다. 나는 그 문제에 대한 해결책으로 대답한다.
당신은'varchar' 또는 (더 나은) '텍스트'에 해당 필드를 변경할 수 있습니까? PostgreSQL에서,'char'는 보통 데이터 타입에 대한 나쁜 선택입니다. 그것은 표준이기 때문에 지원되지만 사용을 피하는 것이 좋습니다. – kgrittn
답장을 보내 주셔서 감사합니다 @ kgrittn. 하지만 내가 말했듯이 원본과 손상되지 않은 데이터베이스에 매핑을하고 싶습니다. 거기에서베이스로 모델을 변경합니다. –
이 고풍 데이터 유형을 다루는 보석을 찾아야 할 것 같습니다. – kgrittn