Я выполняю миграцию базы данных в laravel 5.8 и получаю следующую ошибку:
Illuminate \ Database \ QueryException: SQLSTATE [HY000]: Общая ошибка: 1005 Не удается создать таблицу cartorque
.likes
(номер ошибки: 150 «Ограничение внешнего ключа сформировано неправильно») (SQL: изменить таблицу likes
добавить ограничение likes_
post_id_foreign
ссылки на внешний ключ (post_id
) posts
(id
) при каскаде удаления при обновлениикаскад)
Вот как настраиваются мои таблицы
User Table:
Schema::create('users', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
Posts Table
Schema::create('posts', function (Blueprint $table) {
$table->bigIncrements('id');
$table->timestamps();
$table->string('title', 500);
$table->longText('content');
$table->tinyInteger('privacy')->default('0');
$table->string('location', 250);
$table->bigInteger('longitude');
$table->bigInteger('latitude');
$table->bigInteger('user_id')->unsigned()->index();
$table->string('slug', 250);
});
Schema::table('posts', function (Blueprint $table) {
$table->foreign('user_id')->references('id')->on('users')
->onDelete('cascade')
->onUpdate('cascade');
});
Likes Table
Schema::create('likes', function (Blueprint $table) {
$table->bigIncrements('id');
$table->timestamps();
$table->unsignedBigInteger('user_id');
$table->unsignedBigInteger('post_id');
$table->boolean('like');
});
Schema::table('likes', function (Blueprint $table) {
$table->foreign('post_id')->references('id')->on('posts')
->onDelete('cascade')
->onUpdate('cascade');
});
Schema::table('likes', function (Blueprint $table) {
$table->foreign('user_id')->references('id')->on('users')
->onDelete('cascade')
->onUpdate('cascade');
});
Таблица Likes должна иметь 2 внешних ключа user_id и post_id.Он отлично работает на user_id, но я получаю сообщение об ошибке в столбце post_id