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
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.
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.
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.