проблемы внешнего ключа миграции 5.8. - PullRequest
1 голос
/ 20 мая 2019

Хорошо, я застрял.Похоже на простую вещь, и я видел, что у других тоже есть проблемы.Я использую последнюю версию 5.8.x.У меня нет проблем с созданием таблиц, но когда я начинаю с новой базы данных и добавляю внешние ключи, я получаю сообщение об ошибке:

Освещение \ Database \ QueryException: SQLSTATE [HY000]: Общая ошибка: 1005 Can 't создать таблицу apbase. #sql-546_1a14 (номер ошибки: 150 «Ограничение внешнего ключа сформировано неправильно») (SQL: изменить таблицу apconfig добавить ограничение apconfig_apevent_id_foreign ссылки на внешний ключ (apevent_id) apevents (id))

Я переименовал файлы миграции, поэтому любая нитрация с внешним ключом переносится после справочной таблицы.Файлы миграции были созданы с использованием artisan.

Schema::create('apevents', function(Blueprint $table)
        {
            $table->bigIncrements('id');
            $table->string('name', 200);
            $table->timestamps();
        });
Schema::create('apconfig', function(Blueprint $table)
    {
        $table->bigIncrements('id');
        $table->bigInteger('apevent_id');
        $table->foreign('apevent_id')->references('id')->on('apevents');
        $table->string('name', 200);
        $table->timestamps();
    });

1 Ответ

4 голосов
/ 20 мая 2019

Ваша apevent_id в apconfig таблица должна быть

$table->unsignedBigInteger('apevent_id');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...