Vous êtes sur la page 1sur 10

23/03/2023 00:14 Les migrations de base de données Laravel - apcpedagogie

Avez-vous une question?  (216) 97 656 803  hajjriadh@gmail.com

LARAVEL
Home  Blog  Les cours de programmation  Laravel 

Les migrations de base de données Laravel

Les migrations de base de données


Laravel
Posté par Catégories Date Commentaires
RIADH HAJJI LARAVEL 23 DÉCEMBRE 2020 0 COMMENTAIRE

▼COURS
Sommaire INFORMATIQUE À DOMICILE Contenu du chapitre

ET À DISTANCE
1- Objectifs
Connexion à une base de
données MySQL avec Laravel

NOUS SOMMES LÀ POUR VOUS AIDER


2- Présentation
Eloquent ORM de Laravel
3- Que sont les migrations
Les migrations de base de
4- Les commandes (artisan) utilisées dans la migration
Vous cherchez des cours particuliers en ligne, encadrement de Projets de Fin données Laravel
4.1- migrate: install
d'Études des soutiens en informatique, création des sitesLaravel
Les relations webEloquent
...
4.2- migrate
Les opérations CRUD avec
4.3- migrate: make Eloquent Laravel 1-3

4.4- migrate: rollback Les opérations CRUD avec


4.5- migrate: reset Eloquent Laravel 2-3
ÉCRIVEZ-NOUS
4.6- migrate: refresh Les opérations CRUD avec
Eloquent Laravel 3-3
5- Créer une migration avec artisan
5.1- Artisan
6- Créer une migration d'un seul fichier
!
ez

7- Annuler ou rafraichir une migration


nn


bo

8- Application
'a
S

https://apcpedagogie.com/les-migrations-de-base-de-donnees-laravel/ 1/10
23/03/2023 00:14 Les migrations de base de données Laravel - apcpedagogie

8.1.1- Cours Laravel GÉRER LE CONSENTEMENT


Avez-vous une question?  (216) 97 656 803  hajjriadh@gmail.com

Les migrations de base de données Laravel


1 Objectifs
Etre capable de migrer une base de données avec Laravel.

2 Présentation
Une migration permet de créer et de mettre à jour un schéma de base de données. Autrement
dit, vous pouvez créer des tables, des colonnes dans ces tables, en supprimer, créer des
index… Tout ce qui concerne la maintenance de vos tables peut être pris en charge par cet
outil. Vous avez ainsi un suivi de vos modifications.

La migration de base de données est l’une des meilleures fonctionnalités fournies par
Laravel.

Dans le passé, vous devez créer une base de données, une table et des colonnes soit par
codage SQL ou en utilisant un outil comme PHPMyAdmin. La tâche semble parfois
intimidante.

De plus, nous avons un avantage supplémentaire. En tant que développeur, travaillant en


équipe, vous pouvez obtenir votre travail de base de données bien synchronisé avec vos
collègues. En ce sens, c’est devenu comme un contrôle de version. Vous pouvez facilement
déployer votre table de base de données et mettre à jour avec de nouvelles fonctionnalités
COURS
via des codes INFORMATIQUE
php dans votre application. À DOMICILE
ET À DISTANCE
Tout ce que vous avez à faire est d’écrire quelques lignes de code PHP et Laravel s’occupera
du prochain pas.
NOUS SOMMES LÀ POUR VOUS AIDER
Vous cherchez des cours particuliers en ligne, encadrement de Projets de Fin
d'Études des soutiens en informatique, création des sites web ...

3 Que sont les migrations

Vous ne devez jamais travailler manuellement dans votre outil de


ÉCRIVEZ-NOUS
gestion de bases de données pour ajouter une table ni pour en modifier
la structure. TOUT DOIT PASSER PAR LES FICHIERS DE MIGRATION.

La première étape du développement d’une application Web consiste à concevoir une base
!
ez

de données. Laravel offre un excellent moyen de concevoir des schémas et des tables de 
nn
bo
'a
S

https://apcpedagogie.com/les-migrations-de-base-de-donnees-laravel/ 2/10
23/03/2023 00:14 Les migrations de base de données Laravel - apcpedagogie

base de données et de les migrer facilement sur différents systèmes appelés “migrations“.
Avez-vous une question?  (216) 97 656 803  hajjriadh@gmail.com
Les migrations sont utilisées pour créer, modifier et partager le schéma de base de données
de l’application. Ils sont utilisés avec le générateur de schéma de Laravel pour créer
facilement un schéma de base de données.

Les migrations sont une sorte de carnet de bords de toutes les modifications qui peuvent
être effectuées dans l’organisation de votre base de données (création d’une table, ajout,
suppression ou renommage de colonne dans une table etc…).

Les migrations sont des fichiers php que vous pouvez retrouver directement dans vos
dossiers, elles se situent dans le dossier : /database/migrations/

En vous rendant dans ce dossier vous découvrez que 2 migrations existent déjà. Une pour la
création de la table users et une pour la table password_resets.

Le contenu du fichier create_users_table.php est le suivant :

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

COURS INFORMATIQUE
class CreateUsersTable extends MigrationÀ DOMICILE
{
/** ET À DISTANCE
NOUS SOMMES LÀ POUR VOUS AIDER
* Run the migrations.
*
Vous cherchez des* cours particuliers
@return void en ligne, encadrement de Projets de Fin
d'Études des*/soutiens en informatique, création des sites web ...
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->id();
ÉCRIVEZ-NOUS
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
!

$table->timestamps();
ez
nn


});
bo
'a
S

https://apcpedagogie.com/les-migrations-de-base-de-donnees-laravel/ 3/10
23/03/2023 00:14 Les migrations de base de données Laravel - apcpedagogie
26 }
Avez-vous une question?
27  (216) 97 656 803  hajjriadh@gmail.com

28 /**
29 * Reverse the migrations.
30

*
31 * @return void
32 */
33 public function down()
34 {
35 Schema::dropIfExists('users');
36 }
}

Concernant les méthodes de la Class CreateUsersTable il n’y en a deux :

La méthode up() qui permet d’ajouter de nouvelles tables, colonnes, index etc…

La méthode down() qui permet de faire un “retour en arrière” de toutes les opérations
effectuer par la méthode up().

4 Les commandes (artisan) utilisées dans


la migration
Laravel est livré avec un ensemble de commandes liées à la migration qui peuvent être
exécutées à partir d’une interface de ligne de commande artisan.

migrate: install

COURS INFORMATIQUE
Cette commande permet de créer la table de migrationÀdansDOMICILE
la base de données de

ET À DISTANCE
l’application, cette table permet de suivre les migrations déjà exécutées.

NOUS
migrate
SOMMES LÀ POUR VOUS AIDER
Cette commande est utilisée pour exécuter toutes les migrations en attente pour votre
Vous cherchez des cours particuliers en ligne, encadrement de Projets de Fin
application.
d'Études des soutiens en informatique, création des sites web ...
migrate: make

Cette commande est utilisée pour créer une nouvelle migration, la migration
nouvellement créée est enregistrée dans le répertoire base de données / migrations. Un
horodatage sera ajouté au début du nom du fichier de migration, ce qui permet à Laravel
ÉCRIVEZ-NOUS

de déterminer l’ordre des migrations.

migrate: rollback

Cette commande est utilisée pour annuler la dernière migration appliquée.


!
ez
nn

migrate: reset 
bo
'a
S

https://apcpedagogie.com/les-migrations-de-base-de-donnees-laravel/ 4/10
23/03/2023 00:14 Les migrations de base de données Laravel - apcpedagogie

Cette commande permet d’annuler toutes les migrations appliquées.


Avez-vous une question?  (216) 97 656 803  hajjriadh@gmail.com

migrate: refresh


Cette commande est utilisée pour annuler toutes vos migrations de base de données,
puis recrée votre schéma de base de données.

5 Créer une migration avec artisan


Artisan

Nous avons déjà utilisé Artisan qui permet de faire beaucoup de choses, vous avez un
aperçu des commandes en entrant : php artisan

l’image ci-dessus présente les commandes suivantes:

fresh : supprime toutes les tables et relance la migration (commande apparue


avec la version 5.5)

install : crée et informe la table de référence des migrations

refresh : réinitialise et relance les migrations

rollback : annule la dernière migration

COURS INFORMATIQUE À DOMICILE


status : donne des informations sur les migrations

Pour contrôler votre base de données dans Laravel, utilisez les migrations. Créer une
migration avec artisan:ET À DISTANCE

NOUS SOMMES LÀ POUR VOUS AIDER


php artisan make:migration create_utilisateurs_table --create=utilisateurs

En exécutant, cette commande le fichier


Vous cherchez des cours particuliers en ligne, encadrement
app/database/migration/_create_utilisateurs_table.php a été créé. de Projets de Fin
d'Études des soutiens en informatique, création des sites web ...

ÉCRIVEZ-NOUS
!
ez
nn


bo
'a
S

https://apcpedagogie.com/les-migrations-de-base-de-donnees-laravel/ 5/10
23/03/2023 00:14 Les migrations de base de données Laravel - apcpedagogie

Son contenu est le suivant :


Avez-vous une question?  (216) 97 656 803  hajjriadh@gmail.com

1 <?php
2 use Illuminate\Database\Migrations\Migration; 
3 use Illuminate\Database\Schema\Blueprint;
4 use Illuminate\Support\Facades\Schema;
5
6 class CreateUtilisateursTable extends Migration
7 {
8 /**
9 * Run the migrations.
10 *
11 * @return void
12 */
13 public function up()
14 {
15 Schema::create('utilisateurs', function (Blueprint $table) {
16 $table->id();
17 $table->timestamps();
18 });
19 }
20 /**
21 * Reverse the migrations.
22 *
23 * @return void
24 */
25 public function down()

COURS
26
27
INFORMATIQUE
{
À DOMICILE
Schema::dropIfExists('utilisateurs');
28
29 }
}
ET À DISTANCE
NOUS SOMMES LÀ POUR VOUS AIDER
Vous cherchez des
Cette dernière cours particuliers
commande en ligne,
génère un template encadrement
de source de Projets
PHP qui permettra de Fin
de créer une
d'Études des soutiens
table “utilisateurs” endeinformatique,
dans la base données, si nous création
migrons ce des
scriptsites web
en base ...
de données
via la commande suivante : php artisan migrate

Cette commande lance les migrations, des fichiers crées dans le dossier migration

ÉCRIVEZ-NOUS
PS C:\wamp64\www\laravel\monProjet> php artisan migrate
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_000000_create_users_table (686.62ms)
Migrating: 2014_10_12_100000_create_password_resets_table
!

Migrated: 2014_10_12_100000_create_password_resets_table (724.83ms)


ez
nn


Migrating: 2019_08_19_000000_create_failed_jobs_table
bo
'a
S

https://apcpedagogie.com/les-migrations-de-base-de-donnees-laravel/ 6/10
23/03/2023 00:14 Les migrations de base de données Laravel - apcpedagogie
9 Migrated: 2019_08_19_000000_create_failed_jobs_table (631.62ms)
10
Avez-vous une question?  (216) 97 656 803  hajjriadh@gmail.com
Migrating: 2020_12_23_075316_create_utilisateurs_table
Migrated: 2020_12_23_075316_create_utilisateurs_table (243.56ms)

Pour annuler ou rafraichir une migration on utilise la commande rollback

Si vous rencontrez l’erreur suivant:

1 Migration table created successfully.


2
3 [Illuminate\Database\QueryException]
4 SQLSTATE[42000]: Syntax error or access violation: 1071 La cl&#9500;
5 table `users` add unique `users_email_unique`(`email`))
6
7 [PDOException]
8 SQLSTATE[42000]: Syntax error or access violation: 1071 La cl&#9500;

Avec MySql5.6.XXX, une solution plus clean consiste à modifier le fichier database.php
dans le dossier config :
COURS INFORMATIQUE À DOMICILE
'engine' => null,

Devient : ET À DISTANCE 'engine' => 'InnoDB ROW_FORMAT=DYNAMIC',

NOUS SOMMES LÀ POUR VOUS AIDER


Ou tout autre type de engine paramétré lors de l’install de MySql…

Vous 6cherchez
Créerdes
unecours particuliersd’un
migration en ligne,
seulencadrement
fichier de Projets de Fin
d'Études des soutiens en informatique, création des sites web ...
Il existe une commande d’artisan pour créer une squelette de migration pour un seul fichier:

ÉCRIVEZ-NOUS
Puis exécutez la commande suivante: php artisan migrate --
path=database/migrations/2020_12_23_094127_utilisateurs.php
!
ez
nn


bo
'a
S

https://apcpedagogie.com/les-migrations-de-base-de-donnees-laravel/ 7/10
23/03/2023 00:14 Les migrations de base de données Laravel - apcpedagogie

Annuler
Avez-vous7une question? ou
 (216) rafraichir
97 656 une migration
803  hajjriadh@gmail.com

Pour annuler une migration on utilise la commande rollback : PHP artisan


migrate:rollback 
Exécuter migrate:rollback- c’est la bonne façon d’annuler la dernière migration.

Si migrate:rollback ne fonctionne pas, faites-le manuellement:

Supprimez manuellement le fichier de migration sous


app/database/migrations/my_migration_file_name.php

Réinitialisez les fichiers de chargement automatique du composeur: composer dump-


autoload

Modifier votre base de données: supprimez la dernière entrée de la table des migrations

8 Application
Créer, en utilisant une seule commande, un Model nommé Client ainsi qu’une Migration
permettant de créer la table correspondant au Model

Ajouter, dans la Migration, le code nécessaire permettant de créer la table dans la BD sachant
que la table est représentée de la façon suivante: clients (id, nom, prenom, dateNaissance,
adresse, tel)

Lancer la commande permettant d’exécuter la Migration.

COURS INFORMATIQUE À DOMICILE Eloquent ORM de Laravel


ET À DISTANCE Les relations Laravel Eloquent

NOUS SOMMES LÀ POUR VOUS AIDER


Vous cherchez des cours particuliers en ligne, encadrement de Projets de Fin
Cours Laravel
d'Études des soutiens en informatique, création des sites web ...

Share:    
ÉCRIVEZ-NOUS

Article précédent Article suivant

Connexion à une base de données Modèles Laravel


!
ez

25 décembre 2020
nn

MySQL avec Laravel 


bo
'a
S

https://apcpedagogie.com/les-migrations-de-base-de-donnees-laravel/ 8/10
23/03/2023 00:14 Les migrations de base de données Laravel - apcpedagogie
23 décembre 2020
Avez-vous une question?  (216) 97 656 803  hajjriadh@gmail.com

CES ARTICLES POURRAIENT AUSSI VOUS INTÉRESSER


Intégrer Google Charts dans Laravel Générer un fichier PDF avec laravel dompdf
26 avril, 2021 25 avril, 2021
Intégrer Google Charts dans Laravel Intégrer Google Générer un fichier PDF avec laravel dompdf Génér
Charts dans Laravel Objectifs Etre capable d’ntégrer un fichier PDF avec laravel dompdf Objectifs
Google Charts dans Laravel8 Présentation De nos Apprendre les méthodes essentielles pour créer e
jours, Google dispose de plusieurs API populaires montrer les exemples de tables de données yajra
telles que la carte, le graphique, l’analyse, etc. L’API laravel 8 Découvrir comment créer un fichier PDF
JS de Google charts est également très populaire et partir d’un code HTML ou d’une vue (template
elle est assez simple à intégrer à notre application Blade) avec le package laravel-dompdf dans un
ou à nos projets. Les … projet Laravel. Présentation Dans ce …

LAISSER UN COMMENTAIRE

Vous devez vous connecter pour publier un commentaire.

COURS INFORMATIQUE À DOMICILE


Rechercher… 

ET À DISTANCE
NOUS SOMMES LÀ POUR VOUS AIDER
Vous cherchez des cours particuliers en ligne, encadrement de Projets de Fin
d'Études des soutiens en informatique, création des sites web ...
   

APCPEDAGOGIE

ÉCRIVEZ-NOUS
à propos de nous

Articles

Contact
!
ez

Become a Teacher
nn


bo
'a
S

https://apcpedagogie.com/les-migrations-de-base-de-donnees-laravel/ 9/10
23/03/2023 00:14 Les migrations de base de données Laravel - apcpedagogie

Politique de cookies (UE)


Avez-vous une question?  (216) 97 656 803  hajjriadh@gmail.com

LINKS

Events

Gallery

FAQs

SUPPORT

Documentation

Forums

Language Packs

Release Status

RECOMMEND

WordPress

LearnPress

WooCommerce

bbPress

COURS INFORMATIQUE À DOMICILE


ET À DISTANCE
NOUS SOMMES LÀ POUR VOUS AIDER
Vous cherchez des cours particuliers en ligne, encadrement de Projets de Fin
d'Études
apcpedagogie © 2016des soutiens
- 2022. enréservés.
Tous droits informatique, création des sites web ...

ÉCRIVEZ-NOUS
!
ez
nn


bo
'a
S

https://apcpedagogie.com/les-migrations-de-base-de-donnees-laravel/ 10/10

Vous aimerez peut-être aussi