Comment ajouter une nouvelle colonne à la table existante dans une migration

Comment ajouter une nouvelle colonne à la table existante dans une migration

Problème

J'ai fait des cauchemars sans pouvoir ajouter une nouvelle colonne à mon utilisateurs tableau. Je n'arrive pas à le comprendre.

J'ai essayé de modifier le fichier de migration en utilisant…

Fonction publique UP ()

Schéma :: create ('utilisateurs', fonction ($ table)
$ table-> entier ("payé");
);

Dans le terminal, j'exécute PHP Artisan Migrate: Installer et émigrer.

Comment ajouter de nouvelles colonnes?

Solution

Vous ne pouvez pas mettre à jour les migrations qui ont déjà migré. S'il est déjà ajouté au tableau des migrations, il ne le traitera à nouveau pas. Votre solution consiste à créer une nouvelle migration, pour laquelle vous pouvez utiliser le migrer: faire commande sur la CLI artisanale. Utilisez un nom spécifique pour éviter de s'affronter avec les modèles existants

Pour Laravel 5+:

PHP Artisan Mak

Vous utiliserez la méthode Schema :: Table () (puisque vous accédez à la table existante et ne pas en créer une nouvelle). Et vous pouvez ajouter une colonne comme ceci:

Fonction publique UP ()

Schéma :: table ('utilisateurs', fonction ($ table)
$ table-> entier ('payé');
);

Et n'oubliez pas d'ajouter l'option de recul:

Fonction publique Down ()

Schéma :: table ('utilisateurs', fonction ($ table)
$ Table-> DropColumn ('Paye');
);

Ensuite, vous pouvez exécuter vos migrations:

PHP Artisan Migrate

Et pour Laravel 5:

  • Schéma
  • Migrations

Modifier:

utiliser $ Table-> Integer ('Paye') -> After ('any_Column'); Pour ajouter ce champ après une colonne spécifique.