QCMUP.COM

Liste QCM Laravel Corrigé – Partie 5

Entraînez-vous avec des questions corrigées, progressez étape par étape, puis consolidez vos notions grâce aux définitions et explications.

30 questions Réponses expliquées Réviser → Pratiquer
Liste QCM Laravel Corrigé – Partie 5 – Laravel

La structure d’une base de données joue un rôle déterminant dans la stabilité et l’évolution d’une application web.

Avec Laravel, les migrations offrent une approche moderne et rigoureuse pour gérer cette structure de manière fiable.

Elles permettent de décrire les tables, les colonnes et les relations directement dans le code, tout en assurant une parfaite synchronisation entre les différents environnements.

Pour les étudiants, les candidats aux examens techniques ou les développeurs en formation, comprendre le fonctionnement des migrations est une compétence incontournable.

Ce domaine touche à la fois à la conception des bases de données, à la maintenance des projets et au travail collaboratif.

Les notions abordées ici permettent de maîtriser la création, la modification et la suppression des structures de données, tout en respectant de bonnes pratiques professionnelles.

Cette page accompagne l’apprenant pas à pas, en lui donnant les clés nécessaires pour aborder sereinement la gestion du schéma de base de données avec Laravel.

La structure d’une base de données joue un rôle déterminant dans la stabilité et l’évolution d’une application web.

Avec Laravel, les migrations offrent une approche moderne et rigoureuse pour gérer cette structure de manière fiable.

Elles permettent de décrire les tables, les colonnes et les relations directement dans le code, tout en assurant une parfaite synchronisation entre les différents environnements.

Pour les étudiants, les candidats aux examens techniques ou les développeurs en formation, comprendre le fonctionnement des migrations est une compétence incontournable.

Ce domaine touche à la fois à la conception des bases de données, à la maintenance des projets et au travail collaboratif.

Les notions abordées ici permettent de maîtriser la création, la modification et la suppression des structures de données, tout en respectant de bonnes pratiques professionnelles.

Cette page accompagne l’apprenant pas à pas, en lui donnant les clés nécessaires pour aborder sereinement la gestion du schéma de base de données avec Laravel.

QCM 1 Corrigé

Quel est le but principal des migrations dans Laravel ?

A. Sauvegarder les données de la base de données
B. Versionner le schéma de la base de données comme du code source
C. Accélérer les requêtes SQL complexes
D. Générer automatiquement des interfaces d'administration
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
Les migrations permettent de définir et de partager la structure des tables entre les développeurs.

QCM 2 Corrigé

Quelle commande Artisan permet de créer un nouveau fichier de migration ?

A. php artisan new:migration
B. php artisan generate:migration
C. php artisan make:migration
D. php artisan create:migration
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
La commande 'make:migration' est la commande standard pour générer un squelette de migration.

QCM 3 Corrigé

Dans quel dossier sont stockés les fichiers de migration par défaut ?

A. app/database/migrations
B. config/database
C. database/schema
D. database/migrations
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : D

Justification :
Laravel centralise toutes les définitions de tables dans le dossier 'database/migrations'.

QCM 4 Corrigé

À quoi sert la méthode up() dans une classe de migration ?

A. À appliquer les changements (création de table, ajout de colonne)
B. À annuler la dernière opération effectuée
C. À mettre à jour les données existantes dans les tables
D. À augmenter la version du framework Laravel
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
La méthode up() contient les instructions exécutées lors de l'application de la migration.

QCM 5 Corrigé

Quelle méthode est appelée pour annuler les changements d'une migration ?

A. back()
B. down()
C. reverse()
D. delete()
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
La méthode down() doit contenir l'opération inverse de up() pour permettre les retours en arrière.

QCM 6 Corrigé

Quelle commande exécute toutes les migrations en attente ?

A. php artisan migrate
B. php artisan migrate:run
C. php artisan database:apply
D. php artisan sql:execute
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
La commande 'migrate' synchronise votre base de données avec vos fichiers de migration.

QCM 7 Corrigé

Quelle commande permet d'annuler uniquement la dernière session de migrations ?

A. php artisan migrate:undo
B. php artisan migrate:back
C. php artisan migrate:rollback
D. php artisan migrate:reset
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
Le rollback annule les migrations qui ont été exécutées lors de la dernière commande 'migrate'.

QCM 8 Corrigé

Comment s'appelle la classe utilisée pour définir la structure d'une table dans une migration ?

A. Table
B. Schema
C. BluePrint
D. Builder
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
La façade Schema fournit les méthodes nécessaires pour créer ou modifier des tables.

QCM 9 Corrigé

Quelle méthode de la façade Schema est utilisée pour créer une nouvelle table ?

A. Schema::build()
B. Schema::new()
C. Schema::table()
D. Schema::create()
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : D

Justification :
create() prend en paramètres le nom de la table et une fonction anonyme définissant les colonnes.

QCM 10 Corrigé

Quel type de colonne génère l'ID auto-incrémenté par défaut dans Laravel récent ?

A. $table->id();
B. $table->integer('id');
C. $table->increments();
D. $table->bigInt();
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
$table->id() est un alias pour une colonne Big Integer auto-incrémentée servant de clé primaire.

QCM 11 Corrigé

À quoi sert la méthode $table->timestamps() ?

A. À enregistrer l'heure actuelle du serveur
B. À créer les colonnes created_at et updated_at
C. À calculer la durée d'exécution des requêtes
D. À gérer les fuseaux horaires de l'application
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
Cette méthode crée deux colonnes gérées automatiquement par Eloquent pour le suivi temporel.

QCM 12 Corrigé

Quelle commande supprime toutes les tables et réexécute toutes les migrations ?

A. php artisan migrate:reload
B. php artisan migrate:refresh
C. php artisan migrate:clean
D. php artisan migrate:rebuild
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
Refresh annule tout puis relance tout, idéal pour repartir sur une base propre.

QCM 13 Corrigé

Quelle méthode permet d'ajouter une colonne après une colonne existante (sur MySQL) ?

A. ->behind('colonne')
B. ->nextTo('colonne')
C. ->after('colonne')
D. ->position('colonne')
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
La méthode 'after' permet d'organiser l'ordre visuel des colonnes dans la base de données.

QCM 14 Corrigé

Comment rendre une colonne optionnelle (pouvant contenir NULL) ?

A. ->nullable()
B. ->optional()
C. ->empty()
D. ->null()
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
nullable() modifie la contrainte SQL pour autoriser l'absence de valeur.

QCM 15 Corrigé

Quelle table Laravel utilise-t-il pour savoir quelles migrations ont déjà été exécutées ?

A. migrations_history
B. migrations
C. laravel_logs
D. schema_version
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
La table 'migrations' est créée automatiquement pour suivre l'état du versionnement.

QCM 16 Corrigé

Quelle commande supprime toutes les tables, sans réexécuter les migrations ?

A. php artisan migrate:reset
B. php artisan migrate:drop
C. php artisan db:wipe
D. php artisan migrate:clear
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
migrate:reset annule l'ensemble des migrations du projet en appelant leurs méthodes down().

QCM 17 Corrigé

Comment modifier le nom d'une colonne existante ?

A. $table->name('ancien', 'nouveau');
B. $table->renameColumn('ancien', 'nouveau');
C. $table->change('ancien', 'nouveau');
D. $table->update('ancien', 'nouveau');
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
renameColumn() génère le SQL nécessaire pour renommer un champ sans perdre les données.

QCM 18 Corrigé

Quelle méthode permet de définir une valeur par défaut pour une colonne ?

A. ->default(valeur)
B. ->set(valeur)
C. ->value(valeur)
D. ->initial(valeur)
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
default() spécifie la valeur injectée par la base de données si aucune n'est fournie.

QCM 19 Corrigé

Quelle commande Artisan affiche l'état (exécuté ou non) de chaque migration ?

A. php artisan migrate:status
B. php artisan migrate:list
C. php artisan migrate:show
D. php artisan migrate:check
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
migrate:status permet de voir rapidement quelles migrations sont en attente.

QCM 20 Corrigé

Comment créer une clé étrangère pointant vers la table 'users' ?

A. $table->foreign('user_id')->references('id')->on('users');
B. $table->linkTo('users');
C. $table->belongsTo('users');
D. $table->relation('users');
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
C'est la syntaxe classique pour définir les contraintes d'intégrité relationnelle.

QCM 21 Corrigé

Depuis Laravel 7+, quel raccourci permet de créer une clé étrangère ID plus simplement ?

A. $table->userId();
B. $table->addKey('user_id');
C. $table->foreignId('user_id');
D. $table->userKey();
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
foreignId() crée une colonne BIGINT non signée adaptée aux conventions de Laravel.

QCM 22 Corrigé

Que fait la commande php artisan migrate:fresh ?

A. Elle rafraîchit les données sans toucher aux tables
B. Elle répare les fichiers de migration corrompus
C. Elle supprime toutes les tables puis lance les migrations
D. Elle crée une sauvegarde avant de migrer
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
À la différence de refresh, fresh ignore les méthodes down() et supprime brutalement toutes les tables.

QCM 23 Corrigé

Comment ajouter un index 'unique' sur une colonne 'email' ?

A. $table->string('email')->unique();
B. $table->string('email')->single();
C. $table->string('email')->primary();
D. $table->string('email')->distinct();
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
La méthode unique() empêche les doublons de valeurs dans cette colonne au niveau SQL.

QCM 24 Corrigé

Quelle méthode permet de supprimer une table ?

A. Schema::remove('nom')
B. Schema::delete('nom')
C. Schema::dropIfExists('nom')
D. Schema::destroy('nom')
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
dropIfExists() est sécurisée car elle ne lève pas d'erreur si la table n'existe pas.

QCM 25 Corrigé

Comment modifier le type d'une colonne (ex: passer de string à text) ?

A. $table->text('bio')->change();
B. $table->modify('bio', 'text');
C. $table->type('bio', 'text');
D. $table->convert('bio', 'text');
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
La méthode change() est utilisée après avoir redéfini le type pour modifier la colonne existante.

QCM 26 Corrigé

À quoi sert le préfixe horodaté dans le nom des fichiers de migration ?

A. À connaître la date de création pour le développeur
B. À déterminer l'ordre chronologique d'exécution des migrations
C. À éviter les doublons de noms de fichiers
D. À trier les fichiers par taille
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
Laravel exécute les migrations dans l'ordre de leur création grâce à cet horodatage.

QCM 27 Corrigé

Quel type de colonne choisir pour stocker un texte très long (comme un article) ?

A. $table->string();
B. $table->char();
C. $table->blob();
D. $table->text();
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : D

Justification :
text() est adapté aux contenus longs, alors que string() est limité à 255 caractères par défaut.

QCM 28 Corrigé

Comment définir une colonne qui s'incrémente d'elle-même mais n'est pas la clé primaire ?

A. ->autoIncrement()
B. ->incrementing()
C. ->plusOne()
D. ->serial()
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
autoIncrement() peut être ajouté à n'importe quelle colonne de type entier compatible.

QCM 29 Corrigé

Quelle commande permet de simuler l'exécution des migrations sans modifier la base ?

A. php artisan migrate --dry-run
B. php artisan migrate --pretend
C. php artisan migrate --fake
D. php artisan migrate --test
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
L'option --pretend affiche les requêtes SQL qui seraient exécutées au lieu de les lancer.

QCM 30 Corrigé

Quel est le risque principal si l'on modifie un fichier de migration déjà exécuté en production ?

A. Le fichier sera supprimé automatiquement
B. Laravel ne détectera pas le changement et le schéma divergera
C. La base de données sera verrouillée
D. Le serveur web s'arrêtera
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
Il faut toujours créer une NOUVELLE migration pour modifier une structure existante déjà déployée.

Mots & Définitions
Consultez les définitions des termes importants.

Une migration permet de décrire la structure de la base de données sous forme de code. Elle facilite l’évolution du schéma dans le temps et le travail en équipe.

Le versionnement consiste à suivre l’historique des modifications du schéma de la base. Il garantit la cohérence entre les environnements de développement, de test et de production.

Artisan est l’outil en ligne de commande de Laravel. Il permet d’exécuter facilement des tâches liées aux migrations et à la gestion de la base de données.

La méthode up décrit les changements à appliquer à la base de données. Elle est utilisée pour créer ou modifier des tables et des colonnes.

La méthode down permet d’annuler les changements définis dans une migration. Elle est essentielle pour revenir en arrière en cas d’erreur.

La façade Schema permet de manipuler la structure des tables. Elle fournit des méthodes claires pour créer, modifier ou supprimer des éléments.

Blueprint est la classe utilisée pour définir les colonnes et contraintes d’une table. Elle sert de plan détaillé lors de la création ou modification d’une table.

La clé primaire identifie de manière unique chaque ligne d’une table. Elle est souvent auto-incrémentée pour simplifier la gestion des enregistrements.

Les timestamps correspondent aux colonnes qui enregistrent les dates de création et de mise à jour. Ils facilitent le suivi de l’évolution des données.

Le rollback permet d’annuler une ou plusieurs migrations récemment exécutées. Il est utile pour corriger rapidement une modification incorrecte.

Cette table interne conserve la liste des migrations déjà exécutées. Elle permet à Laravel de savoir quelles opérations ont été appliquées.

Une clé étrangère établit une relation entre deux tables. Elle renforce l’intégrité des données en liant des enregistrements cohérents.

Un index unique empêche l’enregistrement de doublons dans une colonne. Il est souvent utilisé pour garantir l’unicité d’une information sensible.

La modification de colonne permet d’adapter le type ou les propriétés d’un champ existant. Elle doit être réalisée avec précaution pour éviter les incohérences.

L’ordre d’exécution des migrations est déterminé par leur horodatage. Il garantit que les changements sont appliqués dans une séquence logique.

À propos de ce QCM

Les migrations Laravel reposent sur une idée simple mais puissante : traiter la structure de la base de données comme du code versionné.

Chaque migration décrit une évolution précise, qu’il s’agisse de créer une table, d’ajouter une colonne ou de définir une relation entre plusieurs entités.

Cette approche permet de garder une trace claire de toutes les modifications et de les reproduire facilement sur différents environnements.

Les méthodes utilisées dans les migrations définissent clairement les actions à effectuer et celles permettant de revenir en arrière.

Cette possibilité de rollback est essentielle pour corriger une erreur sans mettre en péril l’ensemble du projet.

Les commandes Artisan associées offrent un contrôle précis sur l’exécution, la réinitialisation ou l’état des migrations, ce qui renforce la sécurité du processus.

La définition des colonnes, des clés primaires et des clés étrangères assure l’intégrité des données et une organisation cohérente de la base.

Les index, les valeurs par défaut et les contraintes permettent d’optimiser les performances tout en garantissant la qualité des informations stockées.

Les timestamps, quant à eux, facilitent le suivi des modifications dans le temps.

En s’entraînant avec ces QCM, l’apprenant développe une compréhension solide des mécanismes internes des migrations.

Il apprend à anticiper les impacts des changements, à structurer correctement une base de données et à adopter une démarche professionnelle.

Ces compétences sont essentielles aussi bien pour réussir des examens que pour travailler sur des projets concrets et évolutifs.

Conclusion

Les migrations constituent un outil fondamental pour concevoir et faire évoluer une base de données de manière maîtrisée.

Elles apportent de la clarté, de la sécurité et une grande souplesse dans la gestion des projets Laravel.

En s’exerçant régulièrement, l’apprenant consolide ses connaissances et acquiert des réflexes essentiels pour structurer des applications fiables.

Cette pratique progressive favorise une meilleure compréhension des enjeux techniques et renforce la capacité à intervenir sur des projets réels.

Ces QCM offrent ainsi un cadre idéal pour s’entraîner, progresser et gagner en assurance dans la gestion des bases de données avec Laravel.