Базовая таблица или представление не найдены во время миграции

#laravel #artisan-migrate

#laravel #artisan-перенести

Вопрос:

Я запускаю завершающий проект laravel в homestead. При запуске php artisan migrate выдается ошибка.

Здесь полная ошибка.

В Connection.php строка 664:

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


In Connection.php line 326:

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

Это моя таблица chanel

 public function up()
    {
        Schema::create('chanels', function (Blueprint $table) {
            $table->increments('id');
            $table->string('title');
            $table->string('slug');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('chanels');
    }
  

Почему я получаю ошибку и как я могу устранить эту ошибку?

Выдает ошибку при запуске composer update

введите описание изображения здесь

Комментарии:

1. имя базы данных — forum

2. проверьте имя и порядок вашей миграции

3. Все как до запуска проекта

Ответ №1:

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

Или у вас может быть некоторый сбой / перехват, который выполняет запрос select * from chanel непосредственно перед выполнением миграции, и это приводит к сбою миграции.

Комментарии:

1. Вы правы, но я не могу найти проблему и решение

2. если их нет в рабочей среде, вам нужно откатить все миграции и выполнить миграцию снова.

Ответ №2:

Похоже, что у вас имя модели и имя таблицы не синхронизированы, Перед этим удалите все таблицы из базы данных, это может быть проблема или механизм миграции при запуске таблицы миграции composer dumpa затем

Попробуйте обновить свою модель, указав $table name,

 class Chanel extends Model{
    public $table = "chanels";
  

Комментарии:

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

Ответ №3:

Сначала необходимо выполнить новую миграцию, введите приведенную ниже команду

 php artisan migrate:fresh
  

затем запустите новую модель с файлом миграции с помощью приведенной ниже команды

 php artisan make:model chanel -m
  

с помощью этой команды автоматически создается файл миграции и файл модели
отредактируйте расположение файла миграции в {ваше приложение} база данных миграции

   $table->string('title');
  $table->string('slug');
  

добавлена приведенная выше строка в общедоступную функцию up(){ // code }

теперь запустите миграцию, введите приведенный ниже код

 php artisan migrate
  

Я это это поможет вам

Комментарии:

1. команда artsan не работает. моя база данных обновлена. таблица не существует