Comment changer la structure des tables dans Laravel : 1. Générez le fichier de migration ; 2. Exécutez la commande "php artisan make:migration..."; 3. Ajoutez "$table->text('images')-> ;nullable( )..." C'est tout.
L'environnement d'exploitation de cet article : système Windows 7, Laravel version 5.7, ordinateur Dell G3.
Comment changer la structure des tables dans Laravel ?
Utilisez la migration laravale pour modifier la structure de la table de la base de données
J'utilise des fichiers SQL pour enregistrer et suivre les modifications dans la structure de la table de la base de données. Cependant, l'utilisation de fichiers SQL présente les inconvénients suivants :
Il est impossible de déterminer quels fichiers SQL ont été exécutés et lesquels ne l'ont pas été. Bien que la date soit ajoutée comme préfixe du nom du fichier SQL, lorsque plusieurs personnes développent et que la structure de la table de données en ligne n'a pas été mise à jour depuis longtemps, vous devez souvent vous gratter la tête
Exécuter le fichier SQL est un travail physique . Lorsque vous êtes confronté à plus d’une douzaine de fichiers SQL Alter, les exécuter un par un est très fatiguant.
La synchronisation de plusieurs environnements de développement et de production reste chronophage et laborieuse. Par exemple, si une modification est apportée à la machine de développement du PC et doit être synchronisée avec l'environnement de développement de l'ordinateur portable, il est inconfortable d'y penser.
Ces problèmes sont bien moins agréables que d'exécuter une ligne de migration.
Ajouter un nouveau champ
Par exemple, je souhaite ajouter un champ images au tableau des articles.
Tout d'abord, vous devez générer un fichier de migration. Exécutez la commande
php artisan make:migration add_images_to_articles_table --table=articles
Le résultat de sortie est
Created Migration: 2018_03_21_225819_add_images_to_articles_table
Un fichier sera automatiquement généré dans le répertoire base de données/migrations/ correspondant
database/migrations/2018_03_21_225819_add_images_to_articles_table.php
Vous pouvez voir que le nom du fichier est préfixé par la date et l’heure.
public function up() { Schema::table('articles', function (Blueprint $table) { $table->text('images'); }); }
Suivez la documentation officielle, ajoutez le champ images et enregistrez les modifications. Exécutez la commande
php artisan migrate
et sortez
Migrating: 2018_03_21_225819_add_images_to_articles_table Migrated: 2018_03_21_225819_add_images_to_articles_table
Vérifiez ensuite les migrations de la table de données et vous trouverez une ligne supplémentaire d'enregistrements.
Synchronisez ensuite les modifications avec l'environnement de production. La seule différence est que le serveur de production vous demandera de confirmer si vous souhaitez exécuter la commande.
************************************** * Application In Production! * ************************************** Do you really wish to run this command? (yes/no) [no]: > yes Migrating: 2018_03_21_225819_add_images_to_articles_table Migrated: 2018_03_21_225819_add_images_to_articles_table
Modifier les champs
Ne pas publier à la hâte a provoqué 500 erreurs
SQLSTATE[HY000]: General error: 1364 Field 'images' doesn't have a default value
Il vous suffit de créer un nouveau fichier de migration, d'ajouter
$table->text('images')->nullable()->change();
et d'exécuter à nouveau la migration en ligne pour résoudre le problème.
Recommandations associées : Les cinq derniers didacticiels vidéo Laravel
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!