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

Все началось с того, что я создал новую миграцию

    /**
 * Run the migrations.
 *
 * @return void
 */
public function up()
{
    Schema::table('a_delivery_pec_pickup_coef', function(Blueprint $table) {
        $table->primary(['location_id', 'weight_limit'], 'location_id_weight_limit_index');
    });
}

/**
 * Reverse the migrations.
 *
 * @return void
 */
public function down()
{
    Schema::table('a_delivery_pec_pickup_coef', function(Blueprint $table) {
        $table->dropIndex(['location_id_weight_limit_index']);
    });
}

После того, как я выполнил команду

php artisan migrate: refresh --seed

и получил ошибку

SQLSTATE [42S02]: базовая таблица или представление не найдены: 1146 Таблица 'delivery_update. a_delivery_pec_delivery_ranges 'не существует (SQL: выберите * из a_delive ry_pec_delivery_ranges)

Затем началось нечто очень странное. Я не мог выполнить никаких команд, потому что получил ту же ошибку.

php artisan migrate: откат

php artisan migrate

список мастеров php

приложение просто перестало работать. Главная страница перестала открываться. Я захожу в файл connection.php и делаю

error_reporting(E_ALL);
ini_set('display_errors', 1);

На главной странице отображается та же ошибка, но в таблице «a_delivery_pec_delivery_ranges» я увидел другую таблицу.

Затем я создал таблицу «a_delivery_pec_delivery_ranges» вручную, и ошибка исчезла. НО когда я казнил

php artisan migrate

у меня ошибка

Базовая таблица или представление уже существует: 1050 Таблица 'a_delivery_ pec_delivery_ranges' уже существует

Теперь я в тупиковой ситуации, потому что, если я удалю таблицу 'a_delivery_ pec_delivery_ranges', мое приложение не будет работать с первой ошибкой.

Но если я добавлю эту таблицу (также я попытался добавить имя миграции в таблицу миграции) и попробую

php artisan migrate

or

php artisan migrate: откат

я получаю, что "a_delivery_pec_delivery_ranges" уже существует! Также я пробовал закомментировать метод "вверх" в этой миграции.

 public function up()
{
    Schema::create('a_delivery_pec_delivery_ranges', function (Blueprint $table) {
        $table->increments('id');
        $table->integer('weight');
        $table->float('volume');
        $table->float('length');
    });
}

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

но тогда я не могу создать эту таблицу!

Также я не могу понять, почему именно эта таблица! Я удаляю каждую таблицу по очереди, и ничего не происходит. Но если я удалю эту таблицу, мое приложение умрет!


вверх. Проблема актуальна


person Viktor    schedule 13.12.2017    source источник
comment
Попробуйте php artisan migrate:reset, а затем php artisan migrate --seed   -  person teeyo    schedule 13.12.2017
comment
Коппи и вставьте Schema::dropIfExists('a_delivery_pec_delivery_ranges'); в метод up перед Schema::create ... и выполните php artisan migrate:reset   -  person Maraboc    schedule 13.12.2017
comment
снова ошибка Базовая таблица или представление уже существует: 1050 Таблица 'a_delivery_ pec_delivery_ranges' уже существует   -  person Viktor    schedule 13.12.2017
comment
Скопируйте и вставьте Schema :: dropIfExists ('a_delivery_pec_delivery_ranges'); в методе up перед Schema :: create ... и выполнить миграцию php artisan: сбросить это не удаляет эту таблицу   -  person Viktor    schedule 13.12.2017


Ответы (2)


  • Какое имя класса (и файла) этой миграции?
  • Вы использовали то же имя класса в другом файле миграции? Однажды у меня была эта ошибка из-за ленивости копирования и вставки ^^
  • Можете ли вы показать последние файлы, прошедшие миграцию, например, какой заполнитель был выполнен, а какой нет?

Извините за ответ, я на 6 баллов не могу комментировать :(

person andi79h    schedule 14.12.2017

Проблема заключалась в том, что в моем приложении / Console / Commands / MyCommand.php в __construct был следующий код

PecDeliveryRange :: all ();

person Viktor    schedule 15.12.2017