Agregar y quitar campos a una tabla existente en rails usando migraciones

Agregar y quitar campos a una tabla existente en rails usando migraciones

Como todos sabemos las migraciones en rails nos ayudan para llevar un control conveniente y organizado al momento de alterar nuestra base de datos, pues bueno en esta ocasion declare la siguiente migracion para crear un tabla con los siguientes campos: 

[clear]

  • name
  • surnames
  • date_birth
  • address
  • city
  • state
  • telephone
  • email

Los cuales se crearon con el siguiente generador ejecutado desde consola:


$ rails generate model Partner name:string surnames:text date_birth:date address:text city:string state:string telephone:string email:string

Y despues para poder utilizar dicho model y poder ingresar datos en nuestra tabla, necesitamos correr nuestras migraciones pendientes.


$ bundle exec rake db:migrate

Pero despues de observar y trabajar un poco con estos datos me di cuenta que necesitaba quitar y agregar algunos campos nuevo, por lo cual es donde entra la parte de como quitar ciertos campos de una tabla existente lo cual hacemos de la siguiente forma:


$ rails generate migration RemoveInitialValuesFromPartners name:string surnames:string date_birth:date address:text city:string  state:string telephone:integer mobile_phone:integer email:string

La convencion en general para eliminar campos a una tabla ya existente utilizando generadores es:


$ rails generate migration RemoveNombredeMigrationFromTabla campo1:tipo campo2:tipo

Despues de eso podemos correr nuestras migraciones pendiente nuevamente con el comando


$ bundle exec rake db:migrate

Pero como ahora ocupo nuevos campos en la tabla de partners entonces vamos a agregar ciertos campos a nuestra tabla ya existente de la siguiente forma:


$ rails generate migration AddNewValuesToProducts razon_social:text tipo_regimen:string rfc:string telefono_fijo:string telefono_movil:string numero_cuenta:integer

La convencion en general para agregar nuevos campos a una tabla ya existente utilizando generadores es:


$ rails generate migration AddNombredeMigrationToTabla campo1:tipo campo2:tipo

Renombrar el nombre de una nueva tabla:

rails g migration RenombraMiTablaToNuevaTablaName
## y entonces la migracion debe de lucir algo como lo siguiente:
class RenombraMiTablaToNuevaTablaName < ActiveRecord::Migration
  def change
    rename_table :nombre_actual_tabla, :nuevo_nombre_de_tabla
  end
end

Add an index

rails g migration AddIndexToApplication user_id:integer:index
1 Comment
  • abraham Moises Linares
    Posted at 17:44h, 29 April

    Exelente arituculo mi estimado, no queria irme sin antes hacerle saber que me sirvio muchisimo para aclarar algunas dudas, no cambies sigue asi..

Post A Comment