迁移:无法添加外键约束

我正在尝试在Laravel中创建外键,但是当我使用artisan迁移表时,出现以下错误:

[Lightning\Database\QueryException]
SQLSTATE[HY000]:一般错误:1215无法添加外键约束(SQL)
:alter table`priorities`add constraint priorities\u user\u id\u foreign
键(`user\u id`)引用了`users`(`id`)

我的迁移代码如下:

优先级迁移文件

公共函数up()
{
//
架构::创建('priorities',函数($table){
$table->增量('id',true);
$table->整数('user_id');
$table->外来('user_id')->引用('id')->关于('users');
$table->字符串('priority_name');
$table->小整数('rank');
$table->文本('class');
$table->时间戳('timecreated');
});
}
/**
*反向迁移。
*
*@返回无效
*/
公共职能部门
{
//
Schema::drop('priorities');
}

用户迁移文件

公共函数up()
{
//
架构::表('users',函数($table)
{
$table->创建();
$table->增量('id');
$table->字符串('email');
$table->字符串('first_name');
$table->字符串(“密码”);
$table->字符串(“电子邮件代码”);
$table->字符串('time_created');
$table->字符串('ip');
$table->字符串(“已确认”);
$table->字符串(“用户角色”);
$table->字符串('salt');
$table->字符串(“上次登录”);
$table->时间戳();
});
}
/**
*反向迁移。
*
*@返回无效
*/
公共职能部门
{
//
Schemea::drop('users');
}

任何关于我做错了什么的想法,我现在就想知道,因为我有很多表需要创建,例如用户、客户、项目、任务、状态、优先级、类型、团队。理想情况下,我希望创建使用外键保存此数据的表,即客户机\项目项目\任务

希望有人能帮助我开始

分两步添加,最好也取消签名:

公共函数up()
{
架构::创建('priorities',函数($table){
$table->增量('id',true);
$table->整数('user_id')->无符号();
$table->字符串('priority_name');
$table->小整数('rank');
$table->文本('class');
$table->时间戳('timecreated');
});
模式::表('priorities',函数($table){
$table->外来('user_id')->引用('id')->关于('users');
});
}

发表评论