2010-12-14 14 views
78

Ho bisogno di cambiare un tipo di colonna da testo a longtext nel mio script Rails, ma non riesco a trovare nulla su come farlo.Rails 3 Migrazione con testo lungo

Qualcuno si è imbattuto in questo?

Grazie! Dennis

+1

(almeno per le rotaie 2, è sufficiente specificare il tipo: longtext FWIW) – rogerdpack

risposta

164

Il tipo text gestisce tinytext, text, mediumtext e longtext per MySQL, se è questo che si sta utilizzando. Basta specificare il limite superiore utilizzando :limit => ...

Esempio:

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

Il valore di default di limit è 65535, come previsto.

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

La documentazione MySQL è disponibile here.

+0

Cosa succede se non si conosce il limite? – dennismonsewicz

+0

Aggiornato con un elenco completo. –

+4

Deve essere "4294967295" e non "4294967296" (ad esempio, '4.gigabytes - 1') oppure' Mysql2 :: Errore: la larghezza di visualizzazione fuori intervallo per colonna .... 'viene aumentata. –