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_columnsuggerimento 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_attributerimasto 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_profilesmigrazione:
t.boolean :show_attribute, :default => true
Qualcuno può dirmi cosa sto facendo di sbagliato qui?
upmetodo nella migrazione, che è una nuova classe che verrà generata in db / migrate /. (Ildownmetodo dovrebbe essere scritto per annullare ciò cheupfa.) Apportare tale modifica, quindirake db:migrate.