Решение здесь:
Сначала вы должны создать таблицу answers
, что означает сначала создать миграцию, не зависящую ни от какой другой таблицы.
Миграции должны быть созданный Top-Down
.
Поскольку best_answer_id
принадлежит к таблице answers
, но таблица answer
еще не перенесена.
Попробуйте выполнить это, ваша таблица будет перенесена без каких-либо ошибка.
Schema::create('answers', function (Blueprint $table) {
$table->bigIncrements('id');
$table->unsignedInteger('question_id');
$table->unsignedInteger('user_id');
$table->text('body');
$table->integer('vote_count')->default(0);
$table->timestamps();
});
Schema::create('questions', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('title');
$table->string('slug')->unique();
$table->text('body');
$table->unsignedInteger('views')->default(0);
$table->unsignedInteger('answers')->default(0);
$table->integer('votes')->default(0);
$table->unsignedBigInteger('best_answer_id')->nullable();
$table->unsignedBigInteger('user_id');
$table->timestamps();
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
$table->foreign('best_answer_id')->references('id')->on('answers')->onDelete('SET NULL');
});
Вы также можете отменить предыдущую миграцию, а затем просто запустить ее выше.