laravel - Laravel 迁移附加外键约束格式不正确
问题描述
尝试迁移文件但不断收到:(errno:150“外键约束格式不正确”)(SQL:alter table permission_role
add constraint permission_role_permission_id_foreign
foreign key ( permission_id
) references permissions
( id
) on delete cascade)
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddForeignKeys extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
//
Schema::table('permission_role', function(Blueprint $table) {
$table->foreign('permission_id')->references('id')->on('permissions')->onDelete('cascade');
$table->foreign('role_id')->references('id')->on('roles')->onDelete('cascade');
});
Schema::table('role_user', function(Blueprint $table){
$table->foreign('role_id')->references('id')->on('roles')->onDelete('cascade');
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
//
}
}
解决方案
首先,您应该分离所有迁移。确保首先创建roles
,users
和permissions
表(每个表都应该有自己的迁移)。然后继续创建其他的。
错误:150“外键约束格式不正确”)(SQL:alter table permission_role 添加约束permission_role_permission_id_foreign外键(permission_id)在删除级联时引用权限(id))
发生此错误是因为permissions
尚未创建表,因此您无法在外键中引用它。
推荐阅读
- ebay-api - eBay:如何使用 Api 实时从 eBay 获取物品
- c - 如何在c中的函数中调用文件
- python - 如何解释这个 python 依赖树?
- r - 向数据框值添加百分比符号
- python - paramiko invok shell 只收到结果
- python - BERT 转换器 KeyError:3
- arrays - 如何创建一个数组,其中每个元素都与其他 2 个值相关联?
- javascript - 未捕获的类型错误:paymentForm.requestCardNonce 不是函数 未生成令牌
- python - Jira Python session() 接受 1 个位置参数,但给出了 2 个
- node.js - Textarea多值输入,类似trackingid网站