Не удается найти индекс ограничения внешнего ключа - PullRequest
0 голосов
/ 15 ноября 2018

моя run_tasks таблица имеет внешний ключ completer_guest_id, который мне нужен для ссылки на столбец какой-то другой таблицы.

Schema::table('run_tasks', function (Blueprint $t) {
            $t->integer('completer_id')->nullable();
            $t->foreign('completer_id')->references('id')->on('users');
            $t->integer('completer_guest_id')->nullable();
            $t->foreign('completer_guest_id')->references('id')->on('tasks_guests');
        });

Но я не могу найти индекс: run_tasks_completer_guest_id_foreign из-за этого я не могу удалить ограничение внешнего ключа и удалить столбец в этой миграции:

Schema::table('run_tasks', function (Blueprint $table){
            $table->dropForeign('run_tasks_completer_guest_id_foreign');
            $table->dropColumn('completer_guest_id');
            $table->integer('completer_guest_id')->nullable();
            $table->foreign('completer_guest_id')
                ->references('id')
                ->on('guests')
                ->onDelete('cascade');
        });

и я получаю эту ошибку , когда я запускаю \d run_tasks я вижу это Есть ли решение этой проблемы?

1 Ответ

0 голосов
/ 15 ноября 2018

удалите таблицу и попробуйте разделить создание и назначение внешних ключей

    Schema::dropIfExists('run_tasks');
    Schema::create('run_tasks', function (Blueprint $table) {
        $table->integer('completer_id')->nullable();
        $table->integer('completer_guest_id')->nullable();
        $table->index(['completer_id', 'completer_guest_id']); 
    });       
    Schema::table('run_tasks', function(Blueprint $table) {           
        $table->foreign('completer_id')->references('id')->on('users')->onDelete('cascade');
        $table->foreign('completer_guest_id')->references('id')->on('guests')->onDelete('cascade');
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...