23 May
Alter Column and Migrations
Oggi mi sono trovato a dover cambiare il tipo di una colonna di una tabella, ma non ho trovato un comando “alter_column” nelle migrazioni di Rails per fare quello che volevo. Ho allora provato con un comando per MySQL direttamente, riuscendoci con il seguente codice:
1 2 3 execute "ALTER TABLE table_name MODIFY COLUMN column_name text default NULL" 4 end 5 6 7 execute "ALTER TABLE table_name MODIFY COLUMN column_name varchar(255) default NULL" 8 end 9 end
In questo codice ho fatto una migrazione di nome AlterColumn, che cambia il campo column_name della tabella table_name da varchar(255) a text. Dopo mi è capitato di trovare il comando che mi serviva: era “change_column”. Potete quindi utilizzare anche questa sintassi evitando di incorrere in diversi comandi SQL passando da un database ad un altro:
1 2 3 change_column :table_name, :column_name, :text 4 end 5 6 7 change_column :table_name, :column_name, :string 8 end 9 end
Per non sbagliare ecco l’rdoc per la classe Migration.


Hmm i do not speak french, but this may help you..
http://pragmatig.wordpress.com/2008/12/26/alter-column-the-missing-migration-method-for-activerecord/
cheers mg