2010-12-14 9 views
78

Necesito cambiar un tipo de columna de texto a texto largo en mi script Rails, pero no puedo encontrar nada sobre cómo hacerlo.Rails 3 Migración con texto largo

¿Alguien ha encontrado esto?

Gracias! Dennis

+1

(para raíles 2 al menos, puede especificar el tipo: longtext FWIW) – rogerdpack

Respuesta

164

El tipo text maneja tinytext, text, mediumtext, y longtext para MySQL, si eso es lo que está utilizando. Sólo especifique el límite superior usando :limit => ...

Ejemplo:

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

El valor predeterminado de limit es 65.535, como se esperaba.

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

La documentación de MySQL se puede encontrar here.

+0

¿Qué sucede si no conoce el límite? – dennismonsewicz

+0

Actualizado con una lista completa. –

+4

Debe ser "4294967295" y no "4294967296" (es decir, '4.gigabytes - 1') o si no' Mysql2 :: Error: ancho de pantalla fuera de rango para la columna .... 'se genera. –

Cuestiones relacionadas