269 votes

Supprimer la migration en toute sécurité Dans Laravel 4

Dans Laravel 4, il semble exister une commande permettant de créer une migration, mais pas de la supprimer.

Créer une commande de migration:

 php artisan migrate:make create_users_table
 

Si je veux supprimer la migration, puis-je simplement supprimer en toute sécurité le fichier de migration correspondant dans le dossier database / migrations?

Fichier de migrations:

 2013_05_31_220658_create_users_table
 

487voto

J'ai accidentellement créé une migration avec un mauvais nom (commande: php artisan migrer:faire). Je ne s'est pas exécuté (php artisan migrer) de la migration, j'ai donc décidé de le supprimer. Mes étapes:

  1. Supprimez manuellement le fichier de migration en vertu de app/database/migrations/my_migration_file_name.php
  2. Réinitialiser le compositeur de chargement automatique de fichiers: compositeur de vidage-autoload
  3. Détendez-vous

Si vous n'exécutez la migration (php artisan migrer), 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):

  1. Supprimez manuellement le fichier de migration en vertu de app/database/migrations/my_migration_file_name.php
  2. Réinitialiser le compositeur de chargement automatique de fichiers: compositeur de vidage-autoload
  3. Modifier votre base de données: Supprimer la dernière entrée de la migrations de table

69voto

Jason Lewis Points 8273

Si la migration a été exécutée (lisez: migré), vous devez restaurer votre migration pour effacer l'historique de votre table de base de données. Une fois que vous êtes restauré, vous devriez pouvoir supprimer en toute sécurité votre fichier de migration, puis recommencer la migration.

15voto

Stephane Points 374

Vous devrez probablement également supprimer l'entrée de la table des migrations.

9voto

Tan Jit Ren Points 147

J'ai accidentellement créé deux fois create_users_table. Il a remplacé certaines classes et transformé la restauration en ErrorException.

Ce que vous devez faire est de rechercher autoload_classmap.php dans le dossier vendor / composer et de rechercher la ligne de code spécifique telle que

 'CreateUsersTable' => $baseDir . '/app/database/migrations/2013_07_04_014051_create_users_table.php',
 

et modifier le chemin. Ensuite, votre retour en arrière devrait aller.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X