Подтвердить что ты не робот

Php artisan migrate: reset не удалось открыть поток: нет такого файла или каталога

когда я запустил

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 мою базу данных. Что я могу сделать по этому поводу?

4b9b3361

Ответ 1

Во-первых:

composer dump-autoload

Затем выполните откат.

Эта работа для меня...

composer dump-autoload
php artisan migrate:rollback

Ответ 2

php artisan dump-autoload

решить ту же проблему, что и моя.. вместо изменения вручную

Ответ 3

Удаление строки с помощью 2014_08_06_121048_alter_xxx_table в таблице migrations не помогло решить эту проблему. Когда я снова запускаю php artisan migrate:reset, проблема снова возникает.

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

./vendor/composer/autoload_classmap.php

Поэтому я исправляю имя файла в этом файле, теперь все работает хорошо.

Ответ 4

Похоже, что вы выполнили миграцию, а затем удалили файл миграции, прежде чем откат. Итак, теперь Laravel не уверен, как откат вашей базы данных.

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

Затем просто запустите php artisan migrate, и он установит таблицу и выполнит ваши миграции.

В будущем вы не должны вручную изменять свои файлы миграции, если вы не отменили их сначала.

Ответ 5

Найдите файл 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, и он создал модель, а также миграцию.

Ответ 6

Эта же проблема возникла при создании таблицы сеансов. В принципе, он не может найти путь к приложению/базе данных/миграции/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';

Эти ошибки происходят в основном из-за неправильного пути к файлу или каталогу.

Ответ 7

Используйте эту команду. Это сработало для меня.

php artisan migrate:rollback

Ответ 8

php artisan dump-autoload

Это хорошо в windows10.

Ответ 9

Возможно, вы должны вручную создать миграцию папок. Затем обновление композитора. И выполнить миграции

Ответ 10

Эта команда работает

php artisan optimize

Ответ 11

Отменить действия, выполненные в базе данных. Затем просмотрите таблицу миграций и удалите строку, связанную с удаленным файлом.

После этого вам может понадобиться запустить

 composer dump-autoload