No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Cómo funcionan las migraciones

13/36
Recursos

Aportes 8

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Buena clase, hasta ahora creo que el usar diagramas hace mucho más fácil entender todo.
Actualmente trabajo como desarrollador RoR, estoy viendo este curso para ver si encuentro dudas y apoyar a la comunidad, ya saben, compartir para reforzar el aprendizaje. Pero veo que es muy muy nuevo el curso y las clases no tienen preguntas aún.

CÓMO FUNCIONAN LAS MIGRACIONES

Componentes de las migraciones de base de datos:

  • db/migrate directorio que lleva los procesos donde se hacen las modificaciones entre modelos y tablas. Sus archivos se llamarán Migration 1, 2, N … Y estos permiten crear, editar o eliminar atributos y columnas de la base de datos. Estos procesos se reflejan en el schema.
  • Schema condensa las estructuras de los modelos de las tablas de la base de datos. Aqui se ve la equivalencia entre la base de datos y los modelos.
    En el archivo db/migrate podemos ver las migraciones que hemos creado. Si vamos a uno de estos archivos podemos ver: El nombre del modelo :pets (que sería la tabla) y sus atributos :name y :breed (que serian las columnas)
class CreatePets < ActiveRecord::Migration[6.1]
  def change
    # Por buena práctica el modelo tiene nombre en plural
    create_table :pets do |t|
      t.string :name
      t.string :breed

      t.timestamps
    end
  end
end

En el archivo db/schema podemos ver la versión de nuestra base de datos, referenciada con la base de datos. Tambien podemos ver la estructura de nuestras migraciones.
_
Para ver el estado de nuestras migraciones usamos el comando rails db:migrate:status con esto podremos ver el nombre de la migración, su ID, y su estado.

Una migración consiste en una serie de instrucciones escritas en Ruby para modificar el esquema de la base de datos.

`

Para ejecutar las migraciones pendientes:

$ rails db:migrate

Para revertir la ultima migración:

$ rails db:rollback

Para conocer el estado de las migraciones:

$ rails db:migrate:status

Las migraciones son muy importantes. Tienen un gran poder. Si por ejemplo por alguna actualización se debe agregar un atributo a un modelo es en las migraciones donde indicaremos el valor de ese atributo en los distintos registros de los registros de ese modelo ya creados. Por ejemplo, Digamos en en nuestro modelo perro queremos agregar el atributo color. Pero ya existen registros creados en esa tabla, el atributo se creará de igualmanera en estos registros previamente existentes, por lo que hay que indicar que valor tendrán esos atributos, puede ser nil , o vacio con un string “” o puede que le pongamos a todos un color. O incluso podemos hacer que el color dependa de otro atributo como el breed.

Migraciones

Componentes de las migraciones de base de datos:

  • db/migrate: En esta carpeta se encuentran cada uno de procesos en los que se hacen modificaciones entre modelos y tablas. En cada archivo es donde se van a crear, editar o eliminar tablas y atributos dentro de la base de datos y cada uno de estos procesos se verá reflejado en el Schema.
  • Schema: Aquí se encuentran las estructuras que se han generado de los modelos y constraints dentro de las tablas de la base de datos
  • schema_migrations: Es una tabla oculta se guarda cada una de las migraciones por convención y el estado de las mismas respecto de la versión de ese momento de la base de datos.

Este sistema le permite a Rails tener una estructura consistente para dar seguridad de que la base de datos y la aplicación están alineadas.

las migraciones es lo que verdaderamente diferencia los framework de trabajar plano con el lenguaje

Creo que como referencia es bueno tener a la mano la documentación, aqui esta la de migraciones:
https://guides.rubyonrails.org/active_record_migrations.html

Peoen que momento se conecta a la bd ? En mi caso no agregue mi bd, no le agregue llaves ni nada y no veo en donde se conecta, o a que postgres esta conectado