Diferencias entre Modelo y Migración

6/17

Lectura

Es posible que en algún momento te encuentres con el término “Migración” para definir algo referente a las tablas de las bases de datos y podrías confundirlo con un Modelo que también hace referencia a una tabla en la base de datos, pero sus definiciones y especialmente su propósito es totalmente diferente.

...

Regístrate o inicia sesión para leer el resto del contenido.

Aportes 18

Preguntas 0

Ordenar por:

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

o inicia sesión.

Para ponerlo de una forma más fácil:

Modelo: Esta es como si tuvieras una tabla en tu código, representa a la tabla y con el puedes hacer tus consultas de tipo SELECT, INSERT, UPDATE, DELETE, etc.

Migración: Las migraciones están más pensadas para las tablas, crear tablas, alterar tablas, agregar un nuevo campo a la tabla, etc. Laravel mantiene un histórico de los modelos permitiendo tener así diferentes “versiones” de tu base de datos.

No estoy de acuerdo con estos conceptos, una migración puede estar relacionada directamente con su modelo, de hecho a la hora de crear una migración podemos ya generar su modelo con:

php artisan make:model Project -m

Los migrations en realidad sirven, a parte del versionamiento de la tabla, para abstraernos del motor de la DB, con el mismo migration yo podría generar una DB tanto en MySQL o Postgres por dar un ejemplo.

Las Migraciones son importantes porque nos ayudan a crear las tablas en “cualquier” motor de bases de datos de forma fácil, es la forma correcta de trabajar cuando se empieza un proyecto y se trabaja con un equipos de desarrollo.
Pero hay veces se llega a un proyecto y ya existen bases de datos, entonces la forma en que lo esta haciendo la profesora es la que debemos realizar, a partir de los Modelos se referencian las tablas que tenemos que usar en el proyecto.

Necesitaba está aclaración, muchas gracias!

Para mi la diferencia fundamental es que las migracion son control de versiones de los objectos en nuestra base de datos los modelos son abstracciones de los objetos en nuestra aplicacion

la ventaja de las migraciones es que te permiten escalar la base de datos, de tal forma que si en la linea de tiempo del proyecto cierta tabla necesite eliminarse o aumentarse un campo mas lo podras hacer sin problemas, CREANDO UNA MIGRACION EN LARAVEL

Es decir que:

  • Los modelos serian aquellos que te permiten hacer acciones sobre la tabla creada, como por ejemplo, en el caso que fueran datos numericos, se podrian sumar datos.
  • Las migraciones serian para modificar los datos o estructura de mi tabla.

¿Es asi? corrijanme por favor.

Las migraciones pueden cambiar la estructura de una tabla, y hasta tener un historial de los cambios.

Los modelos nos conectan rápido con las tablas y nos permiten modificar los datos de estas.

Habiendo entendido la diferencias entre modelos y migraciones, y entendiendo hay una relación entre factories y seeders, ¿se podría decir que las migrations son a los factories lo que los models son a los seeders? 🤔

¿Se podría decir que el mapeo que se hace a la BD mediante un ORM es semejante, conceptualmente, al paradigma de POO?

Modelo: gestiona los datos.
Migration: gestiona la estructura de la tabla.
Tengo una gran duda, ¿existe alguna manera de que cada vez que se actualiza o modifica la estructura de una tabla, se actualice el modelo de manera automática? Esto para las ocasiones en que es necesario.

_Modelo: Es una representación conceptual o lógica de la estructura de una base de datos. Define las tablas, columnas, relaciones y restricciones.

Migración: Es un conjunto de instrucciones o scripts que se utilizan para aplicar cambios en una base de datos existente, como agregar tablas o modificar la estructura de las existentes.

En resumen, el modelo describe la estructura deseada de la base de datos, mientras que la migración aplica los cambios necesarios en una base de datos existente._

Muy buena explicación, al principio uno si se llega a confundir con estos 2 términos por que en si ambos hacen referencia a algo de la BD.
La migración nos ayuda a llevar un histórico de cambios que hacemos sobre una tabla y esto va relacionado con los campos que tiene, los tipos de datos de ciertos campos, la longitud de ciertos campos, las llaves foráneas con otras tablas, etc…

Mientras que el modelo es como el medio por el cual podremos acceder a una tabla directamente desde el código que normalmente es desde nuestro controlador (un archivo donde ejecutamos tareas) para hacer tareas por ejemplo de tipo CRUD. Crear, Leer, Actualizar y Eliminar registros de nuestra BD.

Para ponerlo de una forma más fácil:

Modelo: Esta es como si tuvieras una tabla en tu código, representa a la tabla y con el puedes hacer tus consultas de tipo SELECT, INSERT, UPDATE, DELETE, etc.

Migración: Las migraciones están más pensadas para las tablas, crear tablas, alterar tablas, agregar un nuevo campo a la tabla, etc. Laravel mantiene un histórico de los modelos permitiendo tener así diferentes “versiones” de tu base de datos.

**Modelos **
Son representaciones Virtuales de una tabla de base de datos, los cuales puede modificar los registros de una tabla y no su estructura.

Migración
Las migraciones en Laravel son una herramienta que nos permite crear una especie de sistema de control de versiones de bases de datos donde podemos definir tablas con POO en vez de SQL, es compatible con los diferentes motores de base de datos dado que Laravel genera el SQL por nosotros.

Un modelo se utiliza cuando se quiere realizar acciones sobres los datos de una DB, mientas que las migraciones se utilizan cuando se quiere modificar las columnas, tipos de datos, etc de dicha DB.

¡Vamos a ello!

Muchas gracias por la aclaración.