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 aún se están desarrollando.
¿Cómo puedo hacer esto?
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 aún se están desarrollando.
¿Cómo puedo hacer esto?
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
change
no se usa un solo método en lugar de los métodosup
ydown
, es porque elchange
método no admite lachange_column
definición de migración .Además, si está utilizando Rails 3 o más reciente, no tiene que usar los métodos
up
ydown
. Solo puedes usarchange
:fuente
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.
En Rails 3.2 y Rails 4, la respuesta popular de Benjamin tiene una sintaxis ligeramente diferente.
Primero en tu terminal:
Luego, en su archivo de migración:
fuente
Hay un método change_column , simplemente ejecútelo en su migración con datetime como un nuevo tipo.
fuente
AFAIK, las migraciones están ahí para tratar de remodelar los datos que le interesan (es decir, la producción) al realizar cambios de esquema. Entonces, a menos que eso esté mal, y dado que dijo que no le importan los datos, ¿por qué no simplemente modificar el tipo de columna en la migración original de fecha a fecha y volver a ejecutar la migración? (Espero que tengas pruebas :)).
fuente
rake db:migrate:reset
están.