Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Migração para alterar o valor padrão de um campo e alterar o valor de todos os registros existentes para o novo valor padrão somente se tiver o valor padrão antigo.


Na migração você deve usar o método change_column para alterar as configurações da tabela assim:
change_column :my_models, :attribute_name, :integer, :default => 3

E então, para atualizar todos os registros existentes, em vez de percorrer todos os registros e atualizá-los individualmente, você pode usar o método update_all assim:
MyModel.update_all({ :attribute_name => 3 }, { :attribute_name => 0 })

O primeiro argumento informa ao método qual valor definir e o segundo informa a condição para quais linhas devem ser atualizadas.