regresar rails migraciones migracion llaves hacer foraneas especifica eliminar ejecutar deshacer crear comando columna ruby-on-rails-3 activerecord rails-migrations

ruby on rails 3 - rails - cómo establecer el valor predeterminado a la columna en los rieles al crear la migración



llaves foraneas ruby on rails (4)

Soy nuevo en Modelo en rieles. Sé cómo crear un modelo y cómo agregarles una columna. Ahora quiero establecer el valor predeterminado en una columna, pero no entiendo exactamente cómo puedo hacerlo.

Generé nuevo modelo

rails g model User

luego se le agrega una columna

rails generate migration AddNotificationEmailToUsers notification_email:boolean

Ahora quiero establecer el valor predeterminado de la columna de notificación como verdadero. Por favor guíame cómo escribir la migración para el mismo. ¡¡¡Gracias!!!


A partir de ahora no hay manera de especificar el valor predeterminado definido a través de la terminal en la migración de rieles.

puede ejecutar los pasos siguientes para especificar el valor predeterminado para una columna

1). Ejecutar

$ rails generate migration AddNotificationEmailToUsers notification_email:boolean

2). Especifique el nuevo valor predeterminado de la columna en VERDADERO / FALSO editando el nuevo archivo de migración creado.

class AddNotificationEmailToUsers < ActiveRecord::Migration def change add_column :users, :notification_email, :boolean, default: true end end

3). Ejecutar por encima de la migración generada ejecutando.

$ rake db:migrate


El mejor enfoque aquí es utilizar change_column en su migración. Se anuncia un cambio de tipo, pero puede usarlo para adjuntar un valor predeterminado a la columna existente.

tuve

location :integer

en el esquema y quería establecer el valor predeterminado en cero, por lo que escribí una migración como tal:

change_column :player_states, :location, :integer, :default => 0

Eso hizo el truco.


Frederick Cheung es correcto, necesitará editar el archivo de migración para esto. Solo una pequeña actualización agrega una coma después del tipo de datos antes de especificar el valor predeterminado.

add_column :users, :notification_email, :boolean, :default => true


No puede hacer esto desde la línea de comandos; tendrá que editar el archivo de migración y cambiar la línea correspondiente a algo como

add_column :users, :notification_email, :boolean, :default => true