Rails 3使用longtext进行迁移

den*_*icz 88 migration ruby-on-rails ruby-on-rails-3

我需要在我的Rails脚本中将列类型从text更改为longtext,但无法找到有关如何执行此操作的任何内容.

有没有人碰过这个?

谢谢!丹尼斯

Chu*_*ebs 178

text型手柄tinytext,text,mediumtext,和longtextMySQL的,如果这就是你使用的是什么.只需使用指定上限即可:limit => ...

例:

change_column :articles, :body, :text, :limit => 4294967295
Run Code Online (Sandbox Code Playgroud)

正常情况下,默认值为limit65535.

1 to 255 bytes: TINYTEXT
256 to 65535 bytes: TEXT
65536 to 16777215 bytes: MEDIUMTEXT
16777216 to 4294967295 bytes: LONGTEXT
Run Code Online (Sandbox Code Playgroud)

MySQL文档可以在这里找到.

  • 它应该是"4294967295"而不是"4294967296"(即,`4.gigabytes - 1`)或者`Mysql2 :: Error:显示列的宽度超出范围....`被引发. (5认同)
  • 在mysql 5.1.52上,我使用了"16.megabytes - 1"的限制,但我仍然有一个longtext,而不是一个中间文本.知道为什么吗?谢谢. (4认同)
  • 全部:这是 Rails 中的一个错误。几周前它已经在 4.0 分支中得到了修补。 (2认同)
  • @ChuckCallebs:我们可以获得修复此问题的PR链接以及它应该发布的Rails版本吗? (2认同)