Creando instagram (versión web) con laravel #2: Migraciones

Brandon
Laravel chile
Published in
2 min readDec 5, 2017
Migración laravel

En este post veremos lo relacionado a las migraciones osea definiremos las tablas que se crearan en la base de datos pero ya de manera física.

Migraciones

Primero crearemos los modelos junto con las migraciones pero por ahora nos concentraremos en lo segundo en el siguiente post veremos que pasa con los modelos.

php artisan make:model Follower -m
php artisan make:model Post -m
php artisan make:model Comment -m
php artisan make:model Like -m

Aqui le estamos indicando a laravel que cree los modelos y sus respectivas migraciones.

Luego nos dirigimos a las migraciones que estan en: database/migrations, ahi encontraremos los archivos en los cuales debemos definir la tabla y columnas de cada migración.

Para abreviar solo pondré lo que va dentro del método up() de cada migración.

Migración modelo User:

Modelo User.php

Migración modelo Follower:

Modelo Follower.php

Migración modelo Post:

Modelo Post.php

Migración modelo Comment:

Modelo Comment.php

Migración modelo Like:

Modelo Like.php

Todas las migraciones siguen el esquema del post anterior y estas son algunas cosas a tener en cuenta:

Todos las tablas que tienen llaves foráneas deben definirla como unsigned, asi como también las columnas a las que apuntan esas llaves ejemplo:

La tabla posts tiene la llave foránea user_id, esa llave debe ser un integer sin signo y la columna a la que apunta que en este caso es la columna id de la tabla users también debe ser un entero sin signo, y las demás tablas siguen la misma lógica solo debes revisar el esquema del post anterior para entenderlo mejor. Después de definir la columna que servirá como llave foránea de cada tabla se define con el método foreign() indicando el nombre de la columna.

El método references() indica que columna de la tabla padre será a la que apuntaremos y el método on() indica la tabla donde esta esa columna.

Por otro lado los metodos onUpdate() y onDelete() indica que pasara cuando una fila de la tabla padre sea eliminada o actualizada, ejemplo:

Si eliminamos un usuario de la tabla users y en la tabla posts tenemos definida la llave foránea user_id como onDelete(‘cascade’) entonces todos los posts con la llave foránea apuntando a ese usuario serán eliminados también.

Finalmente solo debemos correr las migraciones:

php artisan migrate

Si todo va bien deberían tener las tablas creadas en la base de datos.

Eso por hoy y en el siguiente post veremos mas en detalle los modelos.

--

--