Как решить общую ошибку: 1005 Не удается создать таблицу? - PullRequest
1 голос
/ 03 апреля 2019

Я хочу перенести свою миграцию с внешним ключом в users таблице, на которую ссылается таблица roles, но я всегда получаю

"SQLSTATE [HY000]: общая ошибка: 1005 Невозможно создать таблицу db_pkl_smk. #sql-435c_67 (ошибка: 150" Неправильно сформировано ограничение внешнего ключа ") (SQL: изменить таблицу users добавить ограничение users_role_id_foreign ссылки на внешний ключ (role_id) roles (id) при каскаде удаления при каскаде обновлений) ",

Что-то не так с моей миграцией?

Я изменил файл метки времени по умолчанию с Laravel, чтобы избежать ошибок при добавлении внешних ключей, имя файла выглядит следующим образом:

2019_04_02_133714_create_roles_table.php
2019_04_03_030518_create_users_table.php

2019_04_02_133714_create_roles_table.php

Schema::create('roles', function (Blueprint $table) {
        $table->bigIncrements('id');
        $table->string('name');
        $table->string('desc');
        $table->timestamps();
});

2019_04_03_030518_create_users_table.php

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

        $table->foreign('role_id')->references('id')->on('roles') 
               ->onDelete('cascade')->onUpdate('cascade');
        $table->rememberToken();
        $table->timestamps();
});
...