Necesito eliminar algunas columnas de mi modelo de rieles que ya he creado y tengo algunas entradas de fila en ese modelo. ¿Cómo hacerlo? ¿Algún enlace que tenga detalles para modificar el esquema en rieles? estoy raíles usando la versión 3.¿Cómo eliminar una columna de mi modelo Rails?
Respuesta
Para eliminar una columna de la base de datos, tiene que generar una migración:
script/rails g migration RemoveColumns
Luego, en el método de la clase self.up, eliminar sus columnas:
def self.up
remove_column :table_name, :column_name
end
Es posible que desee volver a añadirlas en el método de la clase self.down así:
def self.down
add_column :table_name, :column_name, :type
end
El Rails Guide para esto entra en mucho más detalle.
Si conoce las columnas que desea eliminar, puede utilizar la convención: Eliminar .. De .. al nombrar sus migraciones. Además, puede incluir los nombres de las columnas cuando ejecuta el comando de migración.
La forma del comando:
rails g migration Remove..From.. col1:type col2:type col3:type
Por ejemplo:
rails g migration RemoveProjectIDFromProjects project_id:string
genera el siguiente archivo de migración:
class RemoveProjectIdFromProjects < ActiveRecord::Migration
def self.up
remove_column :projects, :project_id
end
def self.down
add_column :projects, :project_id, :string
end
end
¿Cambió esto en Rails 4? Cuando traté de usar su ejemplo, solo generó un método de cambio (sin métodos de subir/bajar). – Dan
@Dan - tal vez. No lo he probado en 4. 3 fue la última vez que probé esto. Voy a echar un vistazo más tarde esta noche e informaré. – slm
Después de investigar un poco más, parece que solo se supone que hay un método de cambio en Rails 4. remove_column ahora toma un tipo de datos que debe ser cómo maneja la adición de la columna. – Dan
Vía alternativa comando como Add
, sólo cambian Add
a Remove
:
sola columna:
rails g migration RemoveColumnFromTable column:type
varias columnas:
rails g migration RemoveColumn1AndColumn2FromTable column1:type colummn2:type
- 1. ¿Cómo anular una columna en el modelo de Rails?
- 2. ¿Cómo agrego una columna calculada a mi modelo EF4?
- 3. Ruby/Rails - Eliminar ActiveAdmin de mi aplicación
- 4. ¿Cómo evito una condición de carrera en mi aplicación Rails?
- 5. ¿Rails cómo actualizar una columna después de guardar?
- 6. Eliminar columna de DataGridView
- 7. Django: ¿cómo selecciono una columna particular de un modelo?
- 8. ¿Cómo debería ser mi modelo?
- 9. Cómo proteger un atributo de modelo Rails?
- 10. Eliminar una columna para una matriz numpy
- 11. SQL Alchemy: cómo eliminar de una instancia modelo?
- 12. Alias para nombres de columna en Rails
- 13. ¿Cómo verificar si un modelo tiene una determinada columna/atributo?
- 14. ¿Cómo puedo ignorar permanentemente una columna de base de datos en mi clase ActiveRecord :: Base?
- 15. Eliminar una propiedad de una instancia de modelo existente
- 16. ¿Cómo obtener el nombre de la tarea actual de rake en mi modelo de Rails?
- 17. Mongoose, Eliminar una propiedad del modelo
- 18. Benchmarking Rails Métodos de modelo
- 19. ¿Cómo eliminar el modelo y el andamio en RoR?
- 20. Desactivar la columna "updated_at" en Rails
- 21. Rails Modelo de herencia en formularios
- 22. Eliminar una propiedad/columna de una lista genérica
- 23. Eliminar columna de OpenCV Mat
- 24. Eliminar columna de TableModel en Java
- 25. Completando una selección con datos de modelo en Rails
- 26. Cómo validar si una cadena está json en un modelo de Rails
- 27. Eliminar identidad de una columna en una tabla
- 28. ¿Cómo incremento automáticamente una columna en mi tabla?
- 29. Ruby on Rails: ¿Eliminar una dependencia al instalar una gema?
- 30. Columna decimal Ruby on Rails
Usted no tiene que especificar 'script/rails' con Rails 3.' carriles bastaría g migración RemoveColumns'. – vonconrad