Ich kann die handwerkliche Migration usw. problemlos ausführen, aber wenn ich versuche, sie zurückzusetzen, erhalte ich mit migration:rollback immer wieder diesen Fehler,
c:\xampp\htdocs\laravel>php artisan migrate:rollback
{"error":{"type":"Symfony\\Component\\Debug\\Exception\\FatalErrorException","message":"Class 'CreateCodesnippetsTable' not found","file":"C:\\xampp\\htdocs\\laravel\\vendor\\laravel\\framework\\src\\Illum
inate\\Database\\Migrations\\Migrator.php","line":301}}
Ist das ein Fehler? oder wie soll ich das debuggen?
Bitte stellen Sie die Migrationsdateien für die Migrationen bereit, die Sie rückgängig machen möchten
Wie heißt Ihre CodeSnippetsMigration-Datei? Hast du zufällig diesen oder den Klassennamen manuell geändert?
– rmobis
18. Juni 2013 um 18:32 Uhr
Ich hatte das gleiche Problem. Aber in meinem Fall ist es bei einem „migrate:reset/migrate:refresh“ fehlgeschlagen. Das Problem war, dass ich eine Migrationsdatei gelöscht habe, aber die Tabelle Migrationen immer noch einen Eintrag für diese Datei enthielt, sodass Artisan diese Migration aufgrund eines Fehlers, dass die Klasse nicht gefunden wurde, nicht rückgängig machen konnte. Ich habe diesen Eintrag aus der Migrationstabelle gelöscht und es hat gut funktioniert.
– DeyyyFF
3. November 2014 um 12:30 Uhr
Vielleicht haben Sie dieses Problem bereits gelöst. Aber mir ist aufgefallen, dass Sie für ein Rollback aus irgendeinem Grund oft ausführen müssen composer dumpautoload Erste. Auch wenn Ihre Migration funktioniert.
Du flippiges Genie. Hatte mich eine Stunde lang gefuchst.
– al_manchester
13. März 2014 um 9:35 Uhr
Warum müssen wir Composer Dumpautoload ausführen?
– Mohammed
25. November 2014 um 11:46 Uhr
Wir brauchen Composer Dump-Autoload, da Migrationen nur eine Reihe von Klassen sind, die während des Hoch-/Herunterfahrens automatisch geladen werden. Allerdings zeigte php artisan dump-autoload keinen composer.json-Fehler, während composer dump-autoload dies tat.
– Dmitriy Sintsov
2. Januar 2015 um 17:52 Uhr
In meinem Fall hatte ich Composer noch nicht auf diesem Rechner installiert. (Bei der Neuinstallation von Linux wurde das gesamte Verzeichnis kopiert.) Während also „migrate:make“ dump-autoload ausführt, wurde es auf meinem lokalen Computer nicht ausgeführt, da ich keinen Composer hatte. Die Installation von Composer und das Ausführen von dump-autoload funktionierte.
– Dustin Graham
7. Januar 2015 um 18:31 Uhr
JamesG
Nachdem ich gerade mehrere Tage mit diesem Problem gerungen habe, denke ich, dass ich das jetzt liefern kann endgültig Antwort auf die Lösung dieses Problems. Ja, große Sache, ich weiß, aber ertrage es mit mir.
Die erste Anlaufstelle, wenn Sie auf dieses Problem stoßen, ist das Ausführen composer dump-autoload. Dies sollte zu einer aktualisierten Version der Datei führen vendor/composer/autoload_classmap.php.
Wenn autoload_classmap.php nicht aktualisiert wird, liegt möglicherweise ein Berechtigungsproblem vor, in diesem Fall könnten Sie es versuchen sudo composer dump-autoload.
jedoch, wenn autoload_classmap.phptut aktualisiert werden, überprüfen Sie, ob es einen Eintrag für Ihre Migrationsklasse enthält (in diesem Fall CreateCodesnippetsTable). Wenn für diese Klasse kein Eintrag vorhanden ist, sollten Sie Ihren überprüfen composer.json Datei und stellen Sie sicher, dass die app/database/migrations Ordner ist im Autoload-Abschnitt enthalten, z. B.:
Dieses letzte Bit hat die Dinge für mich vermasselt. In einem fehlgeleiteten Versuch, Dinge zu optimieren, habe ich so viel wie möglich aus meiner herausgezogen composer.json Datei, da ich naiv dachte, dass dies nur Webanfragen betreffen würde. Es stellt sich heraus, dass dieser Artisan auch betroffen ist, also diese Linie wieder einführen und ausführen composer dump-autoload hat das Problem bei mir behoben.
Endlich, wenn das alles schief geht, dann kann sein Es gibt einen Fehler in einer der unterstützenden Bibliotheken, der das Problem verursacht. In diesem Fall können Sie versuchen, mithilfe von zu aktualisieren composer update oder eine Variation davon. Ich vermute jedoch, dass dies selten die wahre Ursache des Problems sein wird.
Das Fehlen von Autoload-Änderungen kann auch auf eine schlechte Syntax hindeuten composer.json. Das merkst du beim Laufen composer dump-autoload in Ihrem Hauptprojekt, aber während der Ausführung php artisan dump-autoloadein Syntaxfehler auf a composer.json in Ihrer Workbench wird nicht gewarnt. Wenn Ihre Workbench-Projekte Probleme bereiten, cd hinein und versuchen zu rennen composer dump-autoload individuell.
– Tomás Buteler
6. August 2014 um 21:40 Uhr
Wenn Sie in Windows sind, verwenden Sie einfach Komponist in Ihrem Terminal-/Befehlszeilendienstprogramm und gehen Sie wie folgt vor:
composer dump-autoload
Ich hoffe es hilft!
Soweit ich sehen kann, vermute ich, dass Sie den Klassennamen manuell geändert haben. Im Fehler haben Sie den Klassennamen CreateCodesnippetsTable In der von Ihnen bereitgestellten Migrationsdatei (Pastebin) lautet der Klassenname jedoch CreateCodeSnippetsTable (Beachten Sie das S in Snippets, ich denke, das haben Sie manuell geändert).
Wenn Sie die Migrationstabelle in Ihrer Datenbank überprüfen, sehen Sie Datensätze für jede Migration. Wenn Sie die Migration erstellen, wird sie mit diesem Namen in der Datenbank gespeichert, und die Rollback-Methode versucht, die Datei mit dem in der Datenbank angegebenen Namen zu lesen. Falls Sie sie manuell ändern, kann Laravel die Klasse nicht finden und Sie erhalten der Fehler.
Um dies zu beheben, können Sie die Änderungen rückgängig machen und versuchen, die Migrationszeile in Ihrer Datenbank rückgängig zu machen oder manuell zu bearbeiten, um den richtigen Klassennamen einzuschließen.
Hoffe das hilft.
Es scheint mir, dass es keine einzige Lösung für diesen Fehler gibt. Ich habe viele Vorschläge ausprobiert, aber endlich funktioniert dieser an meinem Ende.
COMPOSER=composer.json composer dump-autoload
Heuschrecke
Ich habe es durch Laufen behoben
composer.phar update
Udhav Sarvaiya
laden Sie die herunter Komponist.phar Datei von der Laravel-Site und bringen Sie die Komponist.phar Datei an die Wurzelverzeichnis von Laravel-Ordner,
Dann kommen Sie vom Terminal in das Stammverzeichnis von Laravel und führen Sie die aus composer.phar update oder einfach laufen php artisan dump-autoload.
13445200cookie-checkRollback-Probleme bei der Migration von Laravel 4yes
Bitte stellen Sie die Migrationsdateien für die Migrationen bereit, die Sie rückgängig machen möchten
– Marco Rivadeneyra
18. Juni 2013 um 16:49 Uhr
pastebin.com/z5c7nvZd (aufgelistet)
– Geschick
18. Juni 2013 um 17:03 Uhr
Wie heißt Ihre CodeSnippetsMigration-Datei? Hast du zufällig diesen oder den Klassennamen manuell geändert?
– rmobis
18. Juni 2013 um 18:32 Uhr
Ich hatte das gleiche Problem. Aber in meinem Fall ist es bei einem „migrate:reset/migrate:refresh“ fehlgeschlagen. Das Problem war, dass ich eine Migrationsdatei gelöscht habe, aber die Tabelle Migrationen immer noch einen Eintrag für diese Datei enthielt, sodass Artisan diese Migration aufgrund eines Fehlers, dass die Klasse nicht gefunden wurde, nicht rückgängig machen konnte. Ich habe diesen Eintrag aus der Migrationstabelle gelöscht und es hat gut funktioniert.
– DeyyyFF
3. November 2014 um 12:30 Uhr