Я хочу перенести свою миграцию с внешним ключом в 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();
});