run remove rails migrations data column ruby-on-rails migration

ruby-on-rails - remove - rollback migration rails



AsignaciĆ³n de valor predeterminado al crear el archivo de migraciĆ³n (4)

El generador de migración predeterminado no maneja los valores predeterminados (los modificadores de columna son compatibles pero no incluyen valores default o null ), pero puede crear su propio generador.

También puede actualizar manualmente el archivo de migración antes de ejecutar rake db:migrate add_column agregando las opciones a add_column :

add_column :tweet, :retweets_count, :integer, :null => false, :default => 0

... y leer la API Rails

rails generate migration AddRetweetsCountToTweet retweets_count:integer

Ok, uso la línea superior para crear un archivo de migración que genere código automáticamente en el archivo generado para agregar una columna a un modelo Tweet con un tipo de datos entero. Ahora quiero agregar valor predeterminado a la columna agregada mientras genero el archivo de migración. ¿Es eso posible? Busqué en Google pero no pude encontrar. Chicos necesitan ayuda.


Intenté t.boolean: active,: default => 1 en el archivo de migración para crear toda la tabla. Después de ejecutar esa migración cuando registré en db lo hizo como nulo. Aunque dije por defecto como "1". Después de eso, modifiqué un poco el archivo de migración como este y funcionó para mí al establecer el valor predeterminado en el archivo de migración de tabla de creación.

t.boolean: activo,: nulo => falso,: predeterminado => 1. Trabajó para mi.

La versión de My Rails framework es 4.0.0


Sí, no pude ver cómo usar ''predeterminado'' en el comando del generador de migración, pero pude especificar un valor predeterminado para una nueva columna de cadena de la siguiente manera al modificar el archivo de migración generado antes de aplicar "rake db: migrate":

class AddColumnToWidgets < ActiveRecord::Migration def change add_column :widgets, :colour, :string, default: ''red'' end end

Esto agrega una nueva columna llamada ''color'' a mi modelo ''Widget'' y establece el ''color'' predeterminado de los nuevos widgets en ''rojo''.