긴 텍스트를 사용한 Rails 3 마이그레이션


91

Rails 스크립트에서 열 유형을 text에서 longtext로 변경해야하지만이 작업을 수행하는 방법에 대해서는 아무것도 찾을 수 없습니다.

누구든지 이것을 우연히 만났습니까?

감사! 데니스


1
(최소한 rails 2의 경우 type : longtext FWIW 만 지정할 수 있습니다.)
rogerdpack

답변:


183

text형 손잡이 tinytext, text, mediumtext,와 longtextMySQL을위한, 즉 당신이 사용하고있는 거라면. 사용하여 상한을 지정하십시오.:limit => ...

예:

change_column :articles, :body, :text, :limit => 4294967295

기본값 limit은 예상대로 65535입니다.

1 to 255 bytes: TINYTEXT
256 to 65535 bytes: TEXT
65536 to 16777215 bytes: MEDIUMTEXT
16777216 to 4294967295 bytes: LONGTEXT

MySQL 문서는 여기 에서 찾을 수 있습니다 .


5
"4294967296"(예 :)이 아닌 "4294967295"여야합니다 . 4.gigabytes - 1그렇지 않으면 Mysql2::Error: Display width out of range for column ....발생합니다.
Vikrant Chaudhary 2011

1
나는 그것을 반영하기 위해 내 대답을 수정했습니다. Vikrant에게 감사드립니다.
Chuck Callebs 2011

4
mysql 5.1.52에서는 제한을 사용 16.megabytes - 1했지만 여전히 중간 텍스트가 아닌 긴 텍스트가 있습니다. 왜 그런지 아세요? 감사.
David M.

1
t.text "bla", : limit => 16777215를 지정하더라도 결과 열 유형은 "longtext"입니다.
Martin T.

2
@ChuckCallebs :이 문제를 해결 한 PR에 대한 링크와 어떤 버전의 Rails로 배송 될 예정입니까?
Damien Wilson
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.