Preciso alterar meu tipo de coluna de data para data e hora para um aplicativo que estou criando. Eu não ligo para os dados, pois eles ainda estão sendo desenvolvidos.
Como posso fazer isso?
Preciso alterar meu tipo de coluna de data para data e hora para um aplicativo que estou criando. Eu não ligo para os dados, pois eles ainda estão sendo desenvolvidos.
Como posso fazer isso?
Primeiro no seu terminal:
rails g migration change_date_format_in_my_table
Em seguida, no seu arquivo de migração:
Para Rails> = 3.2:
class ChangeDateFormatInMyTable < ActiveRecord::Migration
def up
change_column :my_table, :my_column, :datetime
end
def down
change_column :my_table, :my_column, :date
end
end
change
método não é usado em vez dos métodosup
edown
, é porque ochange
método não suporta achange_column
definição de migração .Além disso, se você estiver usando o Rails 3 ou mais recente, não precisará usar os métodos
up
edown
. Você pode apenas usarchange
:fonte
This migration uses change_column, which is not automatically reversible.
To make the migration reversible you can either:
1. Define #up and #down methods in place of the #change method.
2. Use the #reversible method to define reversible behavior.
No Rails 3.2 e Rails 4, a resposta popular de Benjamin tem uma sintaxe um pouco diferente.
Primeiro no seu terminal:
Em seguida, no seu arquivo de migração:
fonte
Existe um método change_column , basta executá-lo na sua migração com datetime como um novo tipo.
fonte
AFAIK, existem migrações para tentar remodelar os dados importantes (por exemplo, produção) ao fazer alterações no esquema. Portanto, a menos que isso esteja errado, e como ele disse que não se importa com os dados, por que não modificar o tipo de coluna na migração original de data para data e hora e executar novamente a migração? (Espero que você tenha testes :)).
fonte
rake db:migrate:reset
é para isso.