Ответ 1
Во-первых:
composer dump-autoload
Затем выполните откат.
Эта работа для меня...
composer dump-autoload
php artisan migrate:rollback
когда я запустил
php artisan migrate:reset
Я получил
[ErrorException]
include(app/database/migrations/2014_08_06_120900_alter_xxx_table.php): failed to
open stream: No such file or directory
Но у меня нет этого php файла, у меня есть еще один файл с именем
2014_08_06_121048_alter_xxx_table.php
И таблица migrations
в mysql имеет только
2014_08_06_121048_alter_xxx_table.php
но не
2014_08_06_120900_alter_xxx_table.php
Теперь я не могу reset мою базу данных. Что я могу сделать по этому поводу?
Во-первых:
composer dump-autoload
Затем выполните откат.
Эта работа для меня...
composer dump-autoload
php artisan migrate:rollback
php artisan dump-autoload
решить ту же проблему, что и моя.. вместо изменения вручную
Удаление строки с помощью 2014_08_06_121048_alter_xxx_table в таблице migrations
не помогло решить эту проблему. Когда я снова запускаю php artisan migrate:reset
, проблема снова возникает.
Наконец, я сам нахожу основную причину. По какой-то причине, возможно, некоторые неправильные команды, неправильное имя файла было записано в
./vendor/composer/autoload_classmap.php
Поэтому я исправляю имя файла в этом файле, теперь все работает хорошо.
Похоже, что вы выполнили миграцию, а затем удалили файл миграции, прежде чем откат. Итак, теперь Laravel не уверен, как откат вашей базы данных.
Самое простое решение (так как вы все равно переписываете) - это вручную очистить все таблицы из вашей базы данных, включая таблицу миграции.
Затем просто запустите php artisan migrate
, и он установит таблицу и выполнит ваши миграции.
В будущем вы не должны вручную изменять свои файлы миграции, если вы не отменили их сначала.
Найдите файл autoload_classmap.php
в /vendor/composer
.
Откройте файл и отредактируйте следующее:
В return array{ }
удалите существующие файлы table.php
.
Пример:
'CreatePasswordResetsTable'
= > $baseDir . '/database/migrations/2014_10_12_100000_create_password_resets_table.php'
,
'CreateUsersTable'
= > $baseDir . '/database/migrations/2014_10_12_000000_create_users_table.php'
,
Я удалил эти две строки из этого массива и снова выполнил php artisan make:User -m
, и он создал модель, а также миграцию.
Эта же проблема возникла при создании таблицы сеансов. В принципе, он не может найти путь к приложению/базе данных/миграции/2014_08_06_120900_alter_xxx_table.php.
Одна из возможностей заключается в том, что ваш путь к базе данных/миграции не является приложением/базой данных/миграциями. Поэтому сначала вы должны найти правильный путь для базы данных/миграции. Я использовал верхнюю основу cms october и нашел, что мой путь - "модули/система/база данных/миграции".
Вам нужно открыть SessionTableCommand.php
в vendor/laravel/framework/src/Illuminate/Session/Console path
. На строке # 77 вы найдете переменную $path. Измените это на свой путь для базы данных/миграции.
В моем случае строка 77 выглядела так:
$path = 'modules/system/database/migrations';
Эти ошибки происходят в основном из-за неправильного пути к файлу или каталогу.
Используйте эту команду. Это сработало для меня.
php artisan migrate:rollback
php artisan dump-autoload
Это хорошо в windows10.
Возможно, вы должны вручную создать миграцию папок. Затем обновление композитора. И выполнить миграции
Эта команда работает
php artisan optimize
Отменить действия, выполненные в базе данных. Затем просмотрите таблицу миграций и удалите строку, связанную с удаленным файлом.
После этого вам может понадобиться запустить
composer dump-autoload