errno: 150 «Неправильно сформировано ограничение внешнего ключа» в миграции Laravel - PullRequest
0 голосов
/ 22 марта 2019

Я использую версию Laravel 5.7.Я получил следующую ошибку для таблицы users_activations при выполнении команды php artisan migrate

SQLSTATE [HY000]: Общая ошибка: 1005 Не удается создать таблицу auf. #sql-1ecc_fa (номер ошибки:150 «Ограничение внешнего ключа сформировано неправильно») (SQL: изменить таблицу users_activations добавить ограничение users_activations_user_id_foreign ссылки на внешний ключ (user_id) users (id) при каскаде удаления)

users_activations таблица

Schema::create('users_activations', function (Blueprint $table) {
        $table->bigIncrements('id');
        $table->integer('user_id')->unsigned();
        $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); // got error for this line
        $table->string('token');
        $table->timestamp('created_at')->default(DB::raw('CURRENT_TIMESTAMP'));
    });

user таблица

Schema::create('users', function (Blueprint $table) {
        $table->bigIncrements('id');
        $table->integer('role_id')->default('1');
        $table->string('name');
        $table->string('email')->unique();
        $table->timestamp('email_verified_at')->nullable();
        $table->string('password');
        $table->rememberToken();
        $table->timestamps();
    });

Я уже погуглил ошибку.

Я изменил

$table->integer('user_id')->unsigned();

из users_activations таблицы с

$table->unsignedInteger('user_id');.Но не сработало.

Кто-нибудь, помогите мне, пожалуйста?

Заранее спасибо

1 Ответ

1 голос
/ 22 марта 2019

Внешний ключ должен быть того же типа, что и идентификатор, измените ваш внешний ключ на bigInteger:

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