Je ne peux pas comprendre comment ajouter une nouvelle colonne à ma table de base de données existante en utilisant le framework Laravel.
J'ai essayé de modifier le fichier de migration à l'aide de ...
<?php
public function up()
{
Schema::create('users', function ($table) {
$table->integer("paid");
});
}
Dans le terminal, j'exécute php artisan migrate:install
et migrate
.
Comment ajouter de nouvelles colonnes?
php
laravel
laravel-4
laravel-migrations
kim larsen
la source
la source
Réponses:
Pour créer une migration, vous pouvez utiliser la commande migrate: make sur la CLI Artisan. Utilisez un nom spécifique pour éviter les conflits avec les modèles existants
pour Laravel 3:
pour Laravel 5+:
Vous devez ensuite utiliser la
Schema::table()
méthode (lorsque vous accédez à une table existante et non en créez une nouvelle). Et vous pouvez ajouter une colonne comme celle-ci:et n'oubliez pas d'ajouter l'option de restauration:
Ensuite, vous pouvez exécuter vos migrations:
Tout cela est bien couvert dans la documentation de Laravel 3:
Et pour Laravel 4 / Laravel 5:
Éditer:
utilisez
$table->integer('paid')->after('whichever_column');
pour ajouter ce champ après une colonne spécifique.la source
php artisan migrate
php artisan make:migration add_paid_to_users
Je vais ajouter à la réponse de mike3875 pour les futurs lecteurs utilisant Laravel 5.1 et versions ultérieures.
Pour accélérer les choses, vous pouvez utiliser le drapeau "--table" comme ceci:
Cela ajoutera automatiquement le contenu de la méthode
up
etdown
:De même, vous pouvez utiliser l'
--create["table_name"]
option lors de la création de nouvelles migrations qui ajouteront plus de passe-partout à vos migrations. Petit point, mais utile pour en faire plein!la source
Blueprint
été ajouté dans Laravel 5.1. Un simple éclaircissement suffit.Si vous utilisez Laravel 5, la commande serait;
Toutes les commandes de création (contrôleurs, modèles, migrations, etc.) ont été déplacées sous la
make:
commande.php artisan migrate
est toujours le même.la source
laravel 5.6 et supérieur
dans le cas où vous souhaitez ajouter une nouvelle colonne en tant que CLÉ ÉTRANGÈRE à une table existante.
Créez une nouvelle migration en exécutant cette commande: make: migration
Exemple :
Dans le dossier base de données / migrations, vous avez un nouveau fichier de migration, quelque chose comme:
2018_08_08_093431_add_store_id_to_users_table.php (voir les commentaires)
Après cela, exécutez la commande:
Si vous souhaitez annuler la dernière migration pour une raison quelconque, exécutez cette commande:
Vous pouvez trouver plus d'informations sur les migrations dans la documentation
la source
Vous pouvez ajouter de nouvelles colonnes dans la
Schema::create
méthode initiale comme ceci:Si vous avez déjà créé une table, vous pouvez ajouter des colonnes supplémentaires à cette table en créant une nouvelle migration et en utilisant la
Schema::table
méthode:La documentation est assez complète à ce sujet et n'a pas trop changé de la version 3 à la version 4 .
la source
create_users_table
, alors si je suis d' ajouter des colonnes:add_email_password_columns_to_users
.add_
verbe " " à l'avant de chaque fichier pour suivre les changements. de cette façon, il est plus facile de suivre les modifications pour le contrôle de version, etc. car un nouveau fichier d'ajout est créé pour chaque itération. Si vous venez de modifier le "create_
", il serait difficile de savoir que l'employé x a foiré quelque chose en supprimant un index ou en ajoutant une nouvelle colonne, etc., au moins cela a du sens dans ma tête! :)vous pouvez simplement modifier votre fichier de migration existant, par exemple en ajoutant une colonne dans votre tableau, puis dans votre terminal en tapant:
la source
ces choses sont travaillées sur laravel 5.1.
tout d'abord, sur votre terminal, exécutez ce code
après cela, allez dans le répertoire de votre projet et développez la base de données du répertoire - migration et éditez le fichier add_paid_to_users.php, ajoutez ce code
après cela, revenez à votre terminal et exécutez cette commande
j'espère que cette aide.
la source
Tout d'abord annuler votre migration précédente
Après cela, vous pouvez modifier votre fichier de migration existant (ajouter de nouvelles colonnes, renommer ou supprimer), puis réexécuter votre fichier de migration
la source
Bien qu'un fichier de migration soit la meilleure pratique, comme d'autres l'ont mentionné, vous pouvez également ajouter une colonne avec bricoleur.
Voici un exemple de doublure pour le terminal:
(Ici, il est formaté pour plus de lisibilité)
la source