Создана свежая база данных, теперь при выполнении любой команды ремесленника выдается ошибка об отсутствующей таблице. - PullRequest
0 голосов
/ 31 мая 2019

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

In Connection.php line 647:

  SQLSTATE[42S02]: Base table or view not found: 1146 Table 'mydatabase.stores'   
  doesn't exist (SQL: select * from `stores`)                                   


In PDOConnection.php line 63:

  SQLSTATE[42S02]: Base table or view not found: 1146 Table 'mydatabase.stores'   
  doesn't exist                                                                


In PDOConnection.php line 61:

  SQLSTATE[42S02]: Base table or view not found: 1146 Table 'mydatabase.stores'   
  doesn't exist                                                                

Я не запускал php artisan migrate:refresh в течение длительного времени, поэтому я не уверен, где используется таблица stores, которая вызывает эту ошибку. Добавление флага -v не обеспечивает никаких дополнительных выходных данных для дальнейшей трассировки стека.

Я попытался вручную сбросить базу данных и воссоздать ее через mysql. Я пробовал composer dump-autoload, но это тоже не помогает. Я не могу запустить php artisan migrate:install, потому что вызов ЛЮБОЙ команды ремесленника вызовет ту же ошибку. Даже вызов php artisan выдает ошибку. Я пытался посмотреть на своих поставщиков услуг, чтобы увидеть, есть ли ссылка на таблицу в любом из конструкторов, но я не вижу, чтобы она использовалась.

Есть ли где-нибудь в коде, который я должен проверять на предмет использования этой таблицы? Я не уверен, что создается, когда вызывается php artisan.

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

1 Ответ

1 голос
/ 31 мая 2019

Как упомянул @aynber в комментарии к моему вопросу, проблема заключалась в том, что несколько моих команд в каталоге app / Console / Commands / * создавали объект в своем конструкторе, который ссылался на модель Store в своем родительском конструкторе.В частности, он выполнял строку

$this->storeId = Store::get()->last()->id;

Комментирование этой строки позволило мне выполнять свои команды ремесленников.

...