Probleme mit Rollback bei Laravel beheben

Wie sein großes Vorbild Ruby on Rails bietet auch Laravel die Möglichkeit, Datenbank-Updates per Migrations einzuspielen. Nach dem Einspielen können die Änderungen per Rollback auch wieder rückgängig gemacht werden.

Zum guten Ton beim Programmieren gehört, neben der eigentlichen Migration auch immer den Rollback zu testen, um im Ernstfall sicher zu sein, dass alles wie gewünscht funktioniert.

Die eigentliche Migration wird dabei mit Hilfe von folgendem Befehl ausgeführt:

php artisan migrate

Der Rollback wird über folgenden Befehl durchgeführt:

php artisan migrate:rollback 

Als ich den Rollback jedoch testen wollte, erhielt ich die folgende Fehlermeldung:

{"error":{"type":"SymfonyComponentDebugExceptionFatalErrorException","message":"Class 'CreatePlacesTable' not found","file":"/Users/sebastian/Websites/places/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php","line":297}}{"error":{"type":"SymfonyComponentDebugExceptionFatalErrorException","message":"Class 'CreatePlacesTable' not found","file":"/Users/sebastian/Websites/places/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php","line":297}}

Nach einiger Recherche habe ich die Lösung gefunden. Bevor der Rollback durchgeführt werden konnte, musste folgender Befehl abgesetzt werden:

composer.phar dump-autoload

Dieser Befehl führt dazu, dass die Datei vendor/composer/autoload_classmap.php aktualisiert wird. Falls die Datei nicht aktualisiert wird, könnte es an einem Berechtigungsproblem liegen. Evtl. hilft dann ein vorangestelltes sudo.

Nachdem die autoload_classmap.php aktualisiert wurde, funktionierte der Rollback wie gewünscht:

Rolled back: 2014_02_07_131634_create_places_table
Nothing to rollback.

Schreibe einen Kommentar