Laravel ошибка миграции в иностранном ключе 150 - PullRequest
0 голосов
/ 03 августа 2020

Я начал работать над небольшим проектом, используя последнюю версию Laravel, я пытаюсь создать внешний ключ между двумя таблицами (Buildings и Appartmens), но получаю сообщение об ошибке, содержащее:

("SQLSTATE[HY000]: General error: 1005 Can't create table `project`.`apartments` (errno: 150 "Foreign key constraint is incorrectly formed")")

это моя buildings схема таблицы:

Schema::create('buildings', function (Blueprint $table) {
        $table->id();
        $table->string('address');
        $table->timestamps();
    });

это моя apartments схема таблицы:

Schema::create('apartments', function (Blueprint $table) {
        $table->id();
        $table->string('number');
        $table->integer('monthly_price');
        $table->integer('rooms');
        $table->integer('bath_room');
        $table->string('description');
        // Foreign Key 
        $table->foreignId('building_id')->constrained('buildings');
        // Record Times
        $table->timestamps();
    });

1 Ответ

2 голосов
/ 03 августа 2020

Похоже, ваша apartments миграция выполняется до buildings миграции, поэтому внешний ключ не может быть создан, потому что таблица зданий еще не создана.

Чтобы исправить это, вы можете изменить дату который предшествует миграции, например:

2020_08_03_140214_create_apartments_table

2020_08_03_140387_create_buildings_table

в:

2020_08_03_140387_create_buildings_table

2020_08_03_140388_create_apartments_table

Не забудьте после этого запустить composer dump-autoload, чтобы также обновить карты классов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...