Laravel миграция внешнего ключа - PullRequest
0 голосов
/ 21 февраля 2020

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

Schema::create('games', function (Blueprint $table) {
            $table->bigIncrements('gameid');
            $table->unsignedBigInteger('panelgameid');
            $table->string('name', 255);
            $table->boolean('active');
            $table->float('minslots');
            $table->float('maxslots');
            $table->float('slotincreament');


            $table->foreign('panelgameid')->references('gameid')->on('game');
        });

Все настроено правильно (я думаю), я получаю сообщение об ошибке:

SQLSTATE [HY000]: общая ошибка: 1005 Can ' t создать таблицу shark_gp. games (номер ошибки: 150 «Ограничение внешнего ключа сформировано неправильно») (SQL: изменить таблицу games добавить ограничение games_panelgameid_foreign ссылки на внешний ключ (panelgameid) game ( gameid))

В чем здесь проблема?

Ответы [ 2 ]

1 голос
/ 21 февраля 2020

Необходимо убедиться, что столбец внешнего ключа panelgameid совпадает с типом столбца исходного ключа gameid таблицы game. Laravel unsignedBigInteger соответствует типу SQL UNSIGNED BIGINT, это тип gameid?

0 голосов
/ 21 февраля 2020

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

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