Diferencias entre Modelo y Migraci贸n

6/17

Lectura

Es posible que en alg煤n momento te encuentres con el t茅rmino 鈥淢igraci贸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 鈥渧ersiones鈥 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 鈥渃ualquier鈥 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 鈥渧ersiones鈥 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.