Чем отличаются внешние ключи для версий Laravel 5.4 и Laravel 5.8? Я попытался установить devdojo/chatter
на свой проект 5.8 версии Laravel, и при переносе он показывает все виды ошибок для внешнего ключа, но когда я пробую его на версии 5.4, он работает довольно хорошо, ошибок вообще нет. Пожалуйста, помогите, я не могу найти решение, и оно мне нужно в моем проекте. Спасибо!
Это моя ошибка: SQLSTATE[HY000]: General error: 1005 Can't create table `cdm`.`chatter_discussion` (errno: 150 "Foreign key constraint is incorrectly formed") (SQL: alter table `chatter_discussion` add constraint `chatter_discussion_user_id_foreign` foreign key (`user_id`) references `users` (`id`) on delete cascade on update cascade)
Это моя таблица chatter_discussion
:
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class CreateChatterDiscussionTable extends Migration
{
public function up()
{
Schema::create('chatter_discussion', function (Blueprint $table) {
$table->increments('id');
$table->integer('chatter_category_id')->unsigned()->default('1');
$table->string('title');
$table->integer('user_id')->unsigned();
$table->boolean('sticky')->default(false);
$table->integer('views')->unsigned()->default('0');
$table->boolean('answered')->default(0);
$table->timestamps();
});
}
public function down()
{
Schema::drop('chatter_discussion');
}
}
А это foreign_keys
таблица:
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class CreateForeignKeys extends Migration
{
public function up()
{
Schema::table('chatter_discussion', function (Blueprint $table) {
$table->foreign('chatter_category_id')->references('id')->on('chatter_categories')
->onDelete('cascade')
->onUpdate('cascade');
$table->foreign('user_id')->references('id')->on('users')
->onDelete('cascade')
->onUpdate('cascade');
});
Schema::table('chatter_post', function (Blueprint $table) {
$table->foreign('chatter_discussion_id')->references('id')->on('chatter_discussion')
->onDelete('cascade')
->onUpdate('cascade');
$table->foreign('user_id')->references('id')->on('users')
->onDelete('cascade')
->onUpdate('cascade');
});
}
public function down()
{
Schema::table('chatter_discussion', function (Blueprint $table) {
$table->dropForeign('chatter_discussion_chatter_category_id_foreign');
$table->dropForeign('chatter_discussion_user_id_foreign');
});
Schema::table('chatter_post', function (Blueprint $table) {
$table->dropForeign('chatter_post_chatter_discussion_id_foreign');
$table->dropForeign('chatter_post_user_id_foreign');
});
}
}