2010-12-14 62 views
78

Je dois changer un type de colonne de texte en longtext dans mon script Rails, mais je ne trouve rien sur la façon de procéder.Rails 3 Migration avec longtext

Est-ce que quelqu'un a couru à travers cela?

Merci! Dennis

+1

(pour les rails 2 au moins, vous pouvez simplement spécifier le type: longtext FWIW) – rogerdpack

Répondre

164

Les poignées de type texttinytext, text, mediumtext et longtext pour MySQL, si c'est ce que vous utilisez. Il suffit de spécifier la limite supérieure en utilisant :limit => ...

Exemple:

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

La valeur par défaut de limit est 65535, comme prévu.

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

La documentation MySQL peut être trouvé here.

+0

Que se passe-t-il si vous ne connaissez pas la limite? – dennismonsewicz

+0

Mis à jour avec une liste complète. –

+4

Il doit être "4294967295" et non "4294967296" (c'est-à-dire, "4.gigaoctets - 1") ou bien "Mysql2 :: Error: affichage de la largeur hors plage pour la colonne ...." est déclenché. –