J'ai accidentellement créé une migration avec un mauvais nom (commande:) php artisan migrate:make
. Je n'ai pas exécuté ( php artisan migrate
) la migration, j'ai donc décidé de la supprimer. Mes pas:
- Supprimez manuellement le fichier de migration sous
app/database/migrations/my_migration_file_name.php
- Réinitialisez les fichiers de chargement automatique du composeur:
composer dump-autoload
- Se détendre
Si vous avez exécuté la migration ( php artisan migrate
), vous pouvez le faire:
a) Exécuter migrate:rollback
- c'est la bonne façon d'annuler la dernière migration (Thnx @Jakobud)
b) Si migrate:rollback
cela ne fonctionne pas, faites-le manuellement (je me souviens des bugs avec migrate: rollback dans les versions précédentes):
- Supprimez manuellement le fichier de migration sous
app/database/migrations/my_migration_file_name.php
- Réinitialisez les fichiers de chargement automatique du composeur:
composer dump-autoload
- Modifier votre base de données: supprimez la dernière entrée de la table des migrations
migrate:rollback
pour annuler la migration, puis à supprimer le fichier de migration et à vider le chargement automatique. Pas besoin de pirater la base de données ou la table des migrations.Si la migration a été exécutée (lire: migré), vous devez annuler votre migration pour effacer l'historique de votre table de base de données. Une fois rétrogradé, vous devriez pouvoir supprimer votre fichier de migration en toute sécurité, puis recommencer la migration.
la source
Devrait faire le travail, si vous êtes en développement et que le résultat souhaité est de tout recommencer.
En production, ce n'est peut-être pas la chose souhaitée, vous devriez donc être annoncé. (La commande migrate: fresh supprimera toutes les tables de la base de données, puis exécutera la commande migrate).
la source
Vous devrez probablement également supprimer l'entrée de la table des migrations.
la source
J'ai accidentellement créé deux fois create_users_table. Il a remplacé certaines classes et transformé la restauration en erreur ErrorException.
Ce que vous devez faire est de trouver autoload_classmap.php dans le dossier vendeur / compositeur et recherchez la ligne de code spécifique telle que
et modifier le chemin. Ensuite, votre restauration devrait être correcte.
la source
Je suis d'accord avec les réponses actuelles, je veux juste ajouter un peu plus d'informations.
Une nouvelle fonctionnalité a été ajoutée à Laravel 5.3 et versions ultérieures qui vous permettra d'annuler une seule migration:
après, supprimez manuellement le fichier de migration sous
database/migrations/my_migration_file_name.php
Ceci est une excellente fonctionnalité lorsque vous exécutez une migration
De cette façon, vous pouvez supprimer en toute sécurité la migration dans laravel uniquement en 2 étapes
la source
Je préfère le faire manuellement
...database/migrations
dossierphp artisan migrate
, connectez-vous à votre phpmyadmin ou SQL (selon le cas) et dans votre base de données, supprimez la table créée par la migrationFonctionne pour moi, j'espère que ça aide!
la source
Cela fonctionne pour moi:
php artisan migrate:refresh
dans laravel 5.5.43
la source