Supprimer en toute sécurité de la migration Dans Laravel
Dans Laravel, il semble y avoir une commande pour la création d'une migration, mais pas de l'enlever.
Créer de commande de migration:
php artisan migrate:make create_users_table
Si je veux supprimer la migration, puis-je supprimer en toute sécurité le correspondant migrations fichier dans la base de données/migrations dossier?
Migrations fichier:
2013_05_31_220658_create_users_table
Vous devez vous connecter pour publier un commentaire.
J'ai accidentellement créé une migration avec un mauvais nom (commande:
php artisan migrate:make
). Je ne s'est pas exécuté (php artisan migrate
) de la migration, j'ai donc décidé de le supprimer.Mon étapes:
app/database/migrations/my_migration_file_name.php
composer dump-autoload
Si vous n'exécutez la migration (
php artisan migrate
), vous pouvez faire ceci:a) Exécuter
migrate:rollback
- c'est le bon moyen pour annuler la dernière migration (Thnx @Jakobud)b) Si
migrate:rollback
ne fonctionne pas, le faire manuellement (je me souviens de bugs avec la migration:la restauration dans les versions précédentes):app/database/migrations/my_migration_file_name.php
composer dump-autoload
migrate:rollback
à la restauration de la migration, puis supprimez le fichier de migration et de vidage de chargement automatique. Pas besoin de hack de la db ou les migrations de la table.migrate:reset
?Si la migration a été exécuté (lire: migrés), alors vous devez restaurer votre migration à effacer l'historique de votre table de base de données. Une fois que vous avez roulé en arrière, vous devriez être en mesure de supprimer en toute sécurité de votre fichier de migration et ensuite procéder à la migration de nouveau.
Vous avez probablement besoin de supprimer l'entrée de l'migrations tableau trop.
J'ai accidentellement créé deux fois create_users_table. Il surdéfini certaines classes et tourna la restauration en ErrorException.
Ce que vous devez faire est de trouver autoload_classmap.php vendeur/compositeur dossier et recherchez la ligne de code spécifique comme
et modifier le chemin d'accès. Ensuite, votre restauration doit être fine.
Je suis d'accord avec le courant des réponses, je veux juste ajouter un peu plus d'informations.
Une nouvelle fonctionnalité a été ajoutée à Laravel 5.3 et au-dessus de la version qui vous permettra de revenir en arrière une seule migration:
après, supprimez Manuellement le fichier de migration sous
database/migrations/my_migration_file_name.php
C'est une grande fonctionnalité pour lorsque vous exécutez une migration
De cette façon, vous pouvez supprimer en toute sécurité de la migration dans laravel seulement en 2 étape
Devrait faire le travail, si vous êtes dans le développement et le résultat souhaité est de tout recommencer.
Dans la production, que peut-être pas la chose désirée, de sorte que vous devriez être évités. (La migration:frais commande va supprimer toutes les tables de la base de données et exécuter le migrer de commande).
Cela fonctionne pour moi:
php artisan migrate:refresh
dans laravel 5.5.43