Laravel #5 - Les migrations

Edité le 12/08/2020

Les migrations sont des fichiers qui permettent de créer ou modifier des tables dans la base de donnée ?

Le réel but de faire des migrations ? Il vous sera plus facile de déployer et de maintenir votre site.

Voyons comment ça marche !

 

Configurer .env

Dans un premier temps, nous allons nous relier à une base de donnée.

Commencer par créer votre base de donnée, avec le nom que vous souhaiter, ici nous l'appelleront victoranw.

Ensuite, ouvrez le fichier qui s'appelle .env, ce fichier est un fichier de configuration pour votre site

  • DB_CONNECTION, DB_HOST, DB_PORT correspond à votre paramètres SQL.
  • DB_DATABASE correspond à votre base de donnée (ici victoranw)
  • DB_USERNAME correspond à votre  utilisateur sql
  • DB_PASSWORD correspond à votre mot de passe de l'utilisateur sql

Enfin, dans un terminal lancer la commande php artisan config:clear, cela permettra de vider le cache de l'application et de bien prendre en compte votre nouvelle configuration

 

Créer le fichier de migration

Nous allons créer la première table qui servira à enregistrer des publications.

Pour ce, il suffit simplement de lancer la commande php artisan make:migration nomDeLaMigration dans un terminal

Ici, nous allons lancer :

php artisan make:migration createArticlesTable


Deux informations concernant ce nom de migration.

  • Lorsque l'on commence le nom de migration  par create, laravel va générer un fichier qui contient déjà la structure pour créer une nouvelle table
  • Le nom de la table, ici articles est volontairement mise au pluriel, il est très important de mettre le nom des tables au pluriel pour gérer plus facilement les relations.

 

Le fichier de migration

Le fichier se trouve dans database/migrations/create_articles_table.php

 

On constate qu'il y a deux fonctions :

  • Up qui va permettre de faire une action à la migration
  • Down qui va permettre de faire une autre action quand on enlève la migration

Ici comme je le disais, on voit que Laravel à mis en place une base pour créer la table, et détruire la table quand on enlève la migration

On voit également que par défaut laravel crée un id et le timestamps, mais qu'est ce que le timestamps ?

Il crée simplement une colonne created_at pour savoir quand la ligne a été créée, et une ligne updated_at qui permet de savoir quand la ligne a été modifiée

 

Mettre en place la structure de notre table

Nous allons avoir besoin des colonnes suivantes :

  • user_id: permet de savoir qui a créé l'article
  • title: titre de l'article
  • content: contenu de l'article

Pour le moment nous restons sur des informations très basiques.

Pour ajouter ces colonnes dans la table, il suffit de faire $table->type('name') en dessous de l'id

  • $table->integer('user_id');
  • $table->string('title');
  • $table->longText('content');

Pour connaître tout les types disponibles, je vous invite à lire la documentation de Laravel

 

Migrer

Le fait de migrer est simplement d'éxécuter ce fichier pour qu'il modifie notre base de donnée.

Pour migrer, il suffit de lancer php artisan migrate

Attention: en lançant cette commande Laravel va migrer tout les fichiers qui n'ont pas été migrés.

On peut également voir que laravel à migrer d'autres tables comme par exemple celle des utilisateurs qui est enregistrée par défaut

 

Comment Laravel sait le dernier fichier qu'il a migré ?

C'est assez simple, il va lire dans la table migrations, la colonne migration correspond au nom du fichier, la colonne batch permet de savoir à quel étape cette migration appartient.

 

Le rollback

Comme je le disais précedemment, il est possible d'enlever la migration, pour ce il suffit de lancer la commande php artisan migrate:rollback

En lançant cette commande, il va récupérer toutes les migrations du dernier batch, et va executer le down des fichiers de migration.

 

Je pense avoir fait le tour des migrations, dans le prochain tutoriel nous allons voir comment enregistré des informations dans notre nouvelle table !

Cet article a été vu 202 fois
Laisser un commentaire:
Laissez le premier commentaire..
Laravel Débutant

Laravel est un framework web open-source écrit en PHP respectant le principe modèle-vue-contrôleur et entièrement développé en programmation orientée objet. Laravel est distribué sous licence MIT, avec ses sources hébergées sur GitHub. En peu de temps, une communauté d'utilisateurs du framework s'est constituée, et il est devenu en 2016 le projet PHP le mieux noté de GitHub. Laravel reste pourtant basé sur son grand frère Symfony, pour au moins 30 % de ses lignes (utilisation de "Symfony component").

# # # # #