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 tablepor el nombre de su tabla y columnpor 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 stringa 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 Upy Downmétodos de respuesta aceptados , en lugar del Changemé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 exceptionreversible
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 :)