Si bien la respuesta aceptada es excelente, quería agregar una respuesta aquí que, con suerte, se ocupa mejor de la parte 2 de la pregunta sobre los carteles originales, para los no expertos como yo.
- ¿Cómo creo una migración para reemplazar el tipo de esa columna?
generando migración de andamios
Puede generar una migración para mantener su cambio escribiendo en su consola (solo reemplace el table
por el nombre de su tabla y column
por el nombre de su columna)
rails generate migration change_table_column
Esto generará una migración de esqueleto dentro de su aplicación Rails / db / migrate / carpeta. Esta migración es un marcador de posición para su código de migración.
Por ejemplo, quiero crear una migración para cambiar el tipo de columna de string
a text
, en una tabla llamada TodoItems:
class ChangeTodoItemsDescription < ActiveRecord::Migration
def change
# enter code here
change_column :todo_items, :description, :text
end
end
Ejecutando su migración
Una vez que haya ingresado el código para cambiar la columna, simplemente ejecute:
rake db:migrate
Para aplicar su migración. Si comete un error, siempre puede revertir el cambio con:
rake db:rollack
Métodos arriba y abajo
Las referencias Up
y Down
métodos de respuesta aceptados , en lugar del Change
método más nuevo . Dado que los métodos de subida y bajada de estilo antiguo de rieles 3.2 presentaban algunas ventajas sobre el método de cambio más nuevo. Evitar 'Arriba y Abajo' . Desde el lanzamiento de Rails 4 , puede utilizar para evitar este error:ActiveRecord::IrreversibleMigration exception
reversible
class ChangeProductsPrice < ActiveRecord::Migration
def change
reversible do |dir|
change_table :products do |t|
dir.up { t.change :price, :string }
dir.down { t.change :price, :integer }
end
end
end
end
Disfruta de Rails :)