web-dev-qa-db-fra.com

Laravel 5.2 comment mettre à jour la migration sans perdre de données

J'utilise laravel 5.2 et, habituellement, je mets à jour ma base de données en fonction des exigences du projet, je voudrais donc le faire sans perdre les enregistrements de la base de données . Je ne veux pas dire comment amorcer ma base de données .. est en direct et je veux le mettre à jour avec laravel migration . J'allais lancer Laravel Documentation mais je n’ai rien trouvé, j’espère trouver quelqu'un qui m’aide

17
Mohamed Shawky

Comme vous avez déjà des données dans vos tables, au lieu d’annuler vos migrations (ce qui entraînera des pertes de données), vous pouvez créer de nouveaux fichiers de migration pour mettre à jour vos tables. Supposons que vous ayez une table users avec les colonnes name, email, password. Vous avez stocké des données dans cette table. Vous vous êtes ensuite rendu compte que vous deviez également ajouter une nouvelle colonne nommée mobile_no à la table des utilisateurs. Pour ce faire, vous devez créer un nouveau fichier de migration. La commande sera:

php artisan make:migration add_mobile_no_columns_to_users_table --table=users

De cette façon, un nouveau fichier de migration sera créé. Définissez les détails de votre colonne à cet endroit, exécutez les migrations à l'aide de php artisan migrate et c'est tout. Vous aurez cette nouvelle colonne dans votre table users sans perdre les données précédemment stockées.

36
Mahfuzul Alam

Veuillez noter que lorsque vous ajoutez une nouvelle colonne à une table alors qu'il existe déjà des données, vous devez définir une valeur par défaut pour la nouvelle colonne ou la rendre de type nullable. Sinon, vous obtiendrez une erreur.

2
Akram Wahid

Assurez-vous que lorsque vous ajoutez une nouvelle colonne à votre table, cette colonne doit être nullable et ne doit pas être unique. Sinon, vous ferez face à une erreur. Parce que quand une nouvelle colonne est créée, elle sera vide (pas unique). Dans ces conditions, vous devez annuler la migration.

1
Shridhar Dhanopia