Точная ошибка, которую я получаю:

SQLSTATE [HY000]: общая ошибка: 1215 Невозможно добавить ограничение внешнего ключа (SQL: изменить таблицу course_user добавить ограничение course_user_course_code_foreign внешний ключ (course_code) ссылается на courses (code))

Я прочитал много решений, но, похоже, ни одно из них не решило мою проблему. Я пытался;

  1. Вручную указав ядро базы данных.
  2. Отделение создания таблицы от реализации внешнего ключа
  3. Проверено, что типы одинаковы

Вот моя миграция 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();
        });
    }

0