Точная ошибка, которую я получаю:
SQLSTATE [HY000]: общая ошибка: 1215 Невозможно добавить ограничение внешнего ключа (SQL: изменить таблицу
course_user
добавить ограничениеcourse_user_course_code_foreign
внешний ключ (course_code
) ссылается наcourses
(code
))
Я прочитал много решений, но, похоже, ни одно из них не решило мою проблему. Я пытался;
- Вручную указав ядро базы данных.
- Отделение создания таблицы от реализации внешнего ключа
- Проверено, что типы одинаковы
Вот моя миграция course_user
public function up()
{
Schema::create('course_user', function (Blueprint $table) {
$table->engine = 'InnoDB';
$table->integer('user_id')->unsigned();
$table->string('course_code');
});
Schema::table('course_user', function (Blueprint $table) {
$table->engine = 'InnoDB';
$table->foreign('user_id')->references('id')->on('users');
$table->foreign('course_code')->references('code')->on('courses');
$table->timestamps();
//$table->primary(['user_id', 'course_code']);
});
}
Вот мой course
миграции
public function up()
{
Schema::create('courses', function (Blueprint $table) {
//$table->increments('id');
$table->increments('id');
$table->string('code');
$table->string('name');
$table->timestamps();
});
}