Maison > cadre php > Laravel > Comment changer la structure des tables dans Laravel

Comment changer la structure des tables dans Laravel

藏色散人
Libérer: 2021-12-31 11:59:34
original
2339 Les gens l'ont consulté

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.

Comment changer la structure des tables dans Laravel

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
Copier après la connexion

Le résultat de sortie est

Created Migration: 2018_03_21_225819_add_images_to_articles_table
Copier après la connexion

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
Copier après la connexion

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');
});
}
Copier après la connexion

Suivez la documentation officielle, ajoutez le champ images et enregistrez les modifications. Exécutez la commande

php artisan migrate
Copier après la connexion

et sortez

Migrating: 2018_03_21_225819_add_images_to_articles_table
Migrated:  2018_03_21_225819_add_images_to_articles_table
Copier après la connexion

Vérifiez ensuite les migrations de la table de données et vous trouverez une ligne supplémentaire d'enregistrements.

Comment changer la structure des tables dans Laravel

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
Copier après la connexion

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
Copier après la connexion

Il vous suffit de créer un nouveau fichier de migration, d'ajouter

$table->text('images')->nullable()->change();
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal