mysql - remove - Cambiar un tipo de columna de Fecha a Fecha y hora durante la migración de ROR
rollback migration rails (5)
AFAIK, las migraciones están ahí para intentar remodelar los datos que le interesan (es decir, la producción) al realizar cambios de esquema. Entonces, a menos que eso sea incorrecto, y como dijo que no le importan los datos, ¿por qué no modificar el tipo de columna en la migración original desde la fecha a la fecha y hora y volver a ejecutar la migración? (Espero que tengas pruebas :)).
Necesito cambiar mi tipo de columna de fecha a fecha y hora para una aplicación que estoy creando. No me importan los datos ya que todavía se están desarrollando.
¿Cómo puedo hacer esto?
Además, si está usando Rails 3 o más reciente, no tiene que usar los métodos de up
y down
. Solo puedes usar el change
:
class ChangeFormatInMyTable < ActiveRecord::Migration
def change
change_column :my_table, :my_column, :my_new_type
end
end
En Rails 3.2 y Rails 4, la popular respuesta de Benjamin tiene una sintaxis ligeramente diferente.
Primero en tu terminal:
$ rails g migration change_date_format_in_my_table
Luego en su archivo de migración:
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
Hay un método change_column , simplemente ejecútelo en su migración con datetime como un nuevo tipo.
change_column(:my_table, :my_column, :my_new_type)
Primero en tu terminal:
rails g migration change_date_format_in_my_table
Luego en su archivo de migración:
Para rieles> = 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