Не удается запустить Laravel, я получаю ошибку" базовая таблица или представление не найдено"

сначала я откатил 2 миграции по ошибке, затем я побежал php artisan migrate команда, и я получил следующую ошибку:

[IlluminateDatabaseQueryException] SQLSTATE[42S02]: Base table or view not found: 1146 Table 'exercise1.categories' doesn't exist (SQL: select * from categories здесь parent_id = 0) [Исключение pdoexception] SQLSTATE[42S02]: базовая таблица или представление не найдено: 1146 таблица 'exercise1.категории' не существует

потом я перестал что Laravel. После этого когда я запускаю php artisan serve команда для запуска Laravel я получаю ту же ошибку. Вот 2 миграции, которые я свернул назад:

1.

class CreateCategoriesTable extends Migration
    {

        public function up()
        {
            Schema::create('categories',function (Blueprint $table){
                $table->increments('id');
                $table->string('name');
                $table->text('parent_id');
                $table->timestamps();
        });
        }
        public function down()
        {
            Schema::dropIfExists('categories');
        }
    }

2.

class CreateArticlesTable extends Migration
    {
        public function up()
        {
            Schema::create('articles', function (Blueprint $table) {
                $table->increments('id');
                $table->string('title')->nullable(false);
                $table->longText('article')->nullable(false);
                $table->integer('user_id')->unsigned();
                $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
                $table->timestamps();
            });
        }
        public function down()
        {
            Schema::dropIfExists('articles');
        }
    }

пожалуйста, помогите мне решить эту проблемой. Все ответы высоко ценятся, спасибо заранее.

4 ответов


Если вы столкнулись с этой проблемой и если это не вызвано переноса файлов, то, скорее всего это происходит из-за 2 возможные причины.

  1. Регистрация ServiceProviders' функция загрузки, если она содержит запросы, которые запрашивают таблицы, которые не существуют.
  2. проверьте, если вы создали пользовательская вспомогательная функция и загрузил эту вспомогательную функцию в composer.файл json. Если пользовательская вспомогательная функция содержит запросы, которые запрашивают таблицы, которые не существуют, это вызовет эту ошибку.

Так как функции загрузки ServiceProviders и загруженные пользовательские вспомогательные функции загружаются сначала при запуске laravel все php artisan команды будут генерировать ошибку" базовая таблица или представление не найдено".

на данный момент Вы должны прокомментировать те запросы, которые запрашивают несуществующие таблицы, и запустить php artisan serve затем запустите php artisan migrate. Затем раскомментируйте эти строки, сохраните их, и все должно работать штраф.

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


когда вы откатили эти миграции, вы удалили categories и articles таблицы. Так что просто беги!-Команда -3--> еще раз:

php artisan migrate

для меня эта ошибка произошла из-за назначенное задание в laravel, который включал поиск базы данных. Комментируя этот поиск в laravel/app/Console/Kernel.php из моей запланированной задачи я смог снова перенести свою базу данных.


Это может произойти из-за любой из следующих проблем:

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