Tengo una columna llamada :active en una de las tablas de mi base de datos (estoy usando postgres) que actualmente es un valor booleano y está predeterminado en true . Me gustaría cambiar el tipo de esta columna de booleano a entero, para poder usar una enumeración en el futuro con este proyecto. Revisé la documentación y algunas respuestas de desbordamiento de pila, pero aún no he encontrado una respuesta sólida. ¿Cómo hago este cambio usando migraciones? Estoy usando Rails 5, si eso hace la diferencia. ¡Gracias!
Su archivo de migración debería verse así
def change change_column :table_name, :active, :integer endTambién debe volver a escribir todos los registros anteriores en un valor entero, lo que se puede hacer en el mismo archivo de migración.
Puede crear una nueva migración con:
rails g migration change_data_type_for_active Luego edite la migración para usar change_column :
class ChangeDataTypeForActive < ActiveRecord::Migration def self.up change_column :table_name, :active, :integer end def self.down change_column :table_name, :active, :boolean end endLuego ejecuta la migración:
rake db:migrate La razón para definir los métodos up y down es que puede devolver su base de datos al estado anterior con:
rake db:rollback