Larvel 4 перенаправляет проблемы с откатом

Я могу легко запустить миграцию ремесленника и т. Д., Но когда я попытаюсь отбросить его назад, с миграцией: откат я продолжаю получать эту ошибку,

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}} 

Это ошибка? или как мне отлаживать это?

Related of "Larvel 4 перенаправляет проблемы с откатом"

Возможно, вы уже решили эту проблему. Но я замечаю, что по какой-то причине откат часто требует, чтобы composer dumpautoload сначала запускали composer dumpautoload . Даже если ваша миграция работает.

Я несколько раз боролся с этой проблемой, думаю, теперь могу дать окончательный ответ на решение этой проблемы. Да, большой звонок, который я знаю, но голый со мной …

Первый порт захода, если вы столкнулись с этой проблемой, – это запустить composer dump-autoload . Это должно привести к обновленной версии файла vendor/composer/autoload_classmap.php .

Если autoload_classmap.php не обновляется, у вас может возникнуть проблема с разрешениями, и в этом случае вы можете попробовать sudo composer dump-autoload .

Однако, если autoload_classmap.php действительно обновляется, убедитесь, что он содержит запись для вашего класса миграции (в данном случае CreateCodesnippetsTable ). Если для этого класса нет записи, вы должны проверить свой файл composer.json и убедиться, что папка app/database/migrations включена в раздел автозагрузки, например:

 "autoload": { "classmap": [ "app/controllers", "app/models", "app/database/migrations" ] }, 

Этот последний бит – это то, что меня задело. В ошибочной попытке оптимизировать вещи я вытащил столько, сколько мог, из моего файла composer.json , наивно полагая, что это повлияет только на веб-запросы. Оказывается, это повлияло и на Artisan, поэтому, вернув эту строку и запустив composer dump-autoload для компоновщика, я composer dump-autoload проблему для меня.

Наконец, если все это не удается, возможно, есть ошибка в одной из поддерживающих библиотек, которые вызывают проблему, и в этом случае вы можете попробовать обновить с использованием composer update или некоторые изменения. Однако я подозреваю, что это редко будет истинной причиной проблемы.

Если вы находитесь в окнах, просто используйте композитор в своей утилите terminal / command line и выполните следующие действия:

 composer dump-autoload 

Надеюсь, поможет!

Из того, что я вижу, я предполагаю, что вы изменили имя класса вручную. В ошибке у вас есть имя класса CreateCodesnippetsTable но в файле миграции, указанном вами (pastebin), имя класса – CreateCodeSnippetsTable (обратите внимание на S в фрагментах, я думаю, это то, что вы изменили вручную).

Если вы проверите таблицу миграций в своей базе данных, вы увидите записи для каждой миграции. Когда вы создаете перенос, он будет сохранен в базе данных с этим именем, и метод отката пытается прочитать файл с именем, указанным в базе данных, в случае, если вы его вручную измените, laravel не может найти класс, и вы получаете Ошибка.

Чтобы исправить это, вы можете отменить изменения и попробовать откат или вручную отредактировать строку миграции в своей базе данных, чтобы включить правильное имя класса.

Надеюсь это поможет.

Мне кажется, что нет единственного решения этой ошибки. Я попробовал много предложений, но, наконец, это работает в моем конце.

 COMPOSER=composer.json composer dump-autoload 

введите описание изображения здесь

Я исправил его, запустив

composer.phar update

загрузите файл composer.phar с сайта laravel и принесите файл composer.phar в корневой каталог папки laravel, затем с терминала зайдите в корневой каталог laravel и запустите обновление composer.phar или просто запустите php artisan dump-autoload , удачи

я столкнулся с той же проблемой и выяснил проблему

Я создал миграцию для добавления новой даты столбца в таблице PatientReasonOfVisits. Я использовал генераторы laravel, когда создаю миграцию, имя класса было

 class AddDateToPatientReasonOfVisitsTable 

После создания нового файла миграции вам нужно запустить компоновщик dump-autoload, чтобы убедиться, что файл указан в файле карты классов

имя файла составило 2014_09_02_214134_add_date_to_patientreasonofvisitstable.php

миграция выполнена успешно, и новая запись была добавлена ​​в таблицу миграции. в столбце миграции используется имя файла

когда я откатываю миграцию, я получил класс, не найденный исключение, какой класс не найден этот

 AddDateToPatientreasonofvisitsTable 

Примечание: разница между именами классов

почему и как я решил эту проблему, я предполагаю, что когда u откатывает имя класса, разрешенное с использованием имени файла миграции, которое в таблице миграции является столицей и маленькими буквами, определяется символом подчеркивания «_» в имени файла

поэтому после переименования файла миграции в 2014_09_02_214134_add_date_to_patient_reason_of_visits_table.php и уверенного запуска компоновщика dump-autoload после переименования файла имя класса разрешилось правильно, без исключения

Я просто удалил таблицу миграции, а затем выполнил команду «php artisan migrate: refresh»

Тогда все миграции были способны выполнить, не уверен, что это лучший метод, но он работал для меня.

Я загораю laravel 5,

Удачи