用longtext进行Rails 3迁移


Answers:


182

text型手柄tinytexttextmediumtext,和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
它应该是“ 4294967295”,而不是“ 4294967296”(即4.gigabytes - 1),否则将Mysql2::Error: Display width out of range for column ....被引发。
Vikrant Chaudhary的

1
我已经修改了答案以反映这一点。谢谢一群维康特。
Chuck Callebs

4
在mysql 5.1.52上,我使用的限制16.megabytes - 1,但是我仍然得到了一个长文本,而不是中间文本。知道为什么吗?谢谢。
David M.

1
对我来说也一样,即使指定t.text“ bla”,:limit => 16777215,得到的列类型也是“ longtext”。
Martin T.

2
@ChuckCallebs:我们能否获得解决此问题的PR的链接,以及应该将其发布在哪个版本的Rails中?
达米安·威尔逊
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.