Я работаю над CMS, и у меня есть небольшая проблема с моими миграциями. Я добавил новый файл миграции, и я хотел добавить его. Это не сработало, поэтому я запустил этот бит:
php artisan migrate:reset
После этого я запустил этот бит:
php artisan migrate:install php artisan migrate
И теперь я получаю эту ошибку:
{"error":{"type":"Illuminate\\Database\\QueryException","message":"SQLSTATE[42S02]: Base table or view not found:1146 Table 'cms.pages' doesn't exist (SQL: select * from `pages`)"
Ошибка kinda говорит мне, что она не может найти базу данных, потому что это правда.
У меня также есть команда, которая запускает миграцию, и я запускаю ее следующим образом:
php artisan app:install
Но это показывает ту же ошибку …
Удалите любые строки, запрашивающие данные из вашей модели из этих файлов, чтобы убедиться, что мастер не пытается загрузить данные из вашей несуществующей таблицы:
bootstrap/start.php
app/start/global.php
app/start/local.php
app/routes.php
Также обязательно отмените регистрацию любых поставщиков услуг, которые используют данные из этой таблицы в своих регистрах или методах загрузки внутри app/config/app.php
.
Проблема в том, что эти файлы не только выполняются для запросов браузера (Интернета), но и для всех запросов, включая вызовы из командной строки (например, php artisan migrate
). Поэтому, если вы попытаетесь использовать что-либо, прежде чем оно будет доступно в любом из этих файлов, у вас будет плохое время.
Вы можете использовать это, чтобы диктовать, когда приложение запускается с консоли. Я считаю, что эта проблема возникает только при выполнении команды
if( !App::runningInConsole() ){ //allow laravel-menu to run }
Таким образом, вы предотвратите загрузку данных из своей несуществующей таблицы