SO 텍스트 필드 대 문자열에 관한 질문 2를 찾은 후, 나는 링크 필드 가 이미 발견 텍스트 :PostgreSQL의 텍스트 필드에 글자 수 제한 255 자의 오류가있는 이유는 무엇입니까?
ActiveRecord::StatementInvalid: PG::Error: ERROR: value too long for type character varying(255)
:
create_table "answers", :force => true do |t|
t.string "text"
t.text "link"
왜 포스트 그레스는 다음과 같은 오류를 던지고있다
나는 change_column :answers, :link, :text, :limit => nil
이주를 시도했다 그러나 나는 아무것도하지 않는다고 생각하지 않는다.
편집 : 그래서, 문제는 스키마 필드 텍스트입니다 말한다, 그러나 실제로는 문자열입니다
Answer.new.column_for_attribute('link').type
=> :string
를 해결하는 가장 좋은 방법은 무엇입니까는? 스키마에서 데이터베이스를 재 구축하면됩니까? 문자열로 변경 한 다음 텍스트로 다시 변경 하시겠습니까?
레일즈 3.2.2, 포스트 그레스 9, 헤로쿠.
단지 $ 0.02이지만, 다소 신비한'create_table'과 친구들을 사용하여 Rails 마이그레이션을 작성하는 것을 피합니다. PostgreSQL/MySQL을위한 적절한 문장을 실행합니다. 내 스키마가 어떻게 생겼는지 정확히 알고 싶습니다 (유형, 인덱스, 제약 조건 등). – d11wtq
PostgreSQL에서는'text' 칼럼에 제한이 없으며 'character'와'character varying'의 제한이 각각 1이고 제한이 없으므로 테이블을 생성하는 코드는 명시 적으로 255 제한을 지정해야합니다. 따라서 PostgreSQL은 의도 한대로 작동합니다. – aib
"text"란 이름의 칼럼이 아닌가? 나는 당신이 생각하는대로 것들을 확인하기 위해 다른 수단 (psql)을 통해 db에 연결했다. 마이그레이션은 내 경험에서 잘 행동하는 경향이 있습니다. 아마도 당신이 그것을 실행 한 후에 이주가 변경되었을 것입니까? – eevar