J'ai 5 migrations dans mon projet. Je veux seulement exécuter l'une de ces migrations. Est-il possible de transmettre le nom d'un seul fichier à la commande php artisan migrate
?
Réponses
Trop de publicités?Si vous voulez exécuter une migration de fichier unique dans Laravel, vous feriez ce qui suit :
php artisan migrate --path=/database/migrations/nom_du_fichier_de_migration
par exemple :
C:\xampp\htdocs\laravelv3s>php artisan migrate --path=/database/migrations/2020_02_14_102647_create_blogs_table.php
Vous pouvez créer un répertoire séparé pour vos migrations à partir de votre terminal comme suit :
mkdir /database/migrations/my_migrations
Ensuite, déplacez la migration spécifique que vous voulez exécuter dans ce répertoire et exécutez cette commande :
php artisan migrate --path=/database/migrations/my_migrations
J'espère que cela vous aidera !
Vous pouvez utiliser la solution ci-dessous :
- créez votre migration.
- vérifiez l'état de votre migration comme ceci :
php artisan migrate:status
. - copiez le nom complet de la nouvelle migration et faites ceci :
php artisan migrate:rollback --path:2018_07_13_070910_table_tests
. - et ensuite faites ceci
php artisan migrate
.
enfin, vous migrez une table spécifique. Bonne chance.
J'ai donné cette réponse sur un autre post, mais vous pouvez faire ceci : exécutez artisan migrate
pour exécuter toutes les migrations, puis les commandes SQL suivantes pour mettre à jour la table des migrations, la rendant semblable à ce que les migrations ont été exécutées une par une :
SET @a = 0;
UPDATE migrations SET batch = @a:=@a+1;
Cela changera la colonne batch en 1, 2, 3, 4 .. etc. Ajoutez une condition WHERE batch>=...
(et mettez à jour la valeur initiale de @a
) si vous voulez uniquement affecter certaines migrations.
Après cela, vous pouvez exécuter artisan migrate:rollback
autant de fois que nécessaire, et il passera à travers les migrations une par une.