Ho visto alcune domande (in particolare questa ) qui su SO sull'aggiunta di un valore booleano predefinito a una colonna esistente. Quindi ho provato il change_column
suggerimento ma non devo farlo nel modo giusto.
Provai:
$ change_column :profiles, :show_attribute, :boolean, :default => true
Che ritorna -bash: change_column: command not found
Ho quindi eseguito:
$ rails g change_column :profiles, :show_attribute, :boolean, :default => true
...e
$ rails change_column :profiles, :show_attribute, :boolean, :default => true
Quindi ha funzionato rake db:migrate
, ma il valore per è :show_attribute
rimasto nil
. Nella domanda a cui ho fatto riferimento sopra, in PostgreSQL è indicato che è necessario aggiornarlo manualmente. Dal momento che sto usando PostgreSQL ho aggiunto quanto segue nella mia create_profiles
migrazione:
t.boolean :show_attribute, :default => true
Qualcuno può dirmi cosa sto facendo di sbagliato qui?
up
metodo nella migrazione, che è una nuova classe che verrà generata in db / migrate /. (Ildown
metodo dovrebbe essere scritto per annullare ciò cheup
fa.) Apportare tale modifica, quindirake db:migrate
.