Come modifico la struttura di un database in Rails?

Utente HTML.it
chiede

Come modifico la struttura di un database in Rails?

Redazione HTML.it
risponde

A partire da Rails 1.2 ogni modifica al database è gestita con la creazione di una nuova Migration. Ad esempio, per creare un nuovo campo name nella tabella users di tipo stringa con lunghezza 20, innanzi tutto si crei una nuova migration:

ruby script/generate migration AddFieldNameToUsers

Rails creerà un nuovo file nella cartella db/migrate con il seguente contenuto.

class AddFieldNameToUsers < ActiveRecord::Migration
 def self.up
 end

 def self.down
 end
end

In questo file si inseriscano i comandi di modifica del database, come indicato nella documentazione.

class AddFieldNameToUsers < ActiveRecord::Migration
 def self.up
 add_column :users, :name, :string, :limit => 20
 end

 def self.down
 remove_column :users, :name
 end
end

A questo punto è sufficiente eseguire il task db:migrate per aggiornare il database.

rake db:migrate