php - Laravel 6 - MariaDB 10.1:Illuminate\Database\QueryException:SQLSTATE[HY000] 迁移错误
问题描述
我有自定义迁移:
代码:
// Groups migration
Schema::create('groups', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name');
$table->boolean('status')->default(false);
$table->timestamps();
});
// Clients migration
Schema::create('clients', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('fullname');
$table->integer('phone');
$table->date('birthday')->nullable();
$table->boolean('can_get_congratulations')->default(false);
$table->unsignedInteger('group_id')->default(null);
$table->foreign('group_id')
->references('id')
->on('groups')
->onDelete('cascade');
$table->boolean('status')->default(true);
$table->timestamps();
});
当我运行此迁移文件时,会收到错误消息:
Illuminate\Database\QueryException : SQLSTATE[HY000]: General error: 1005 Can't create table
taxisms
。#sql-1cc0_65c
(errno: 150 "Foreign key constraint is wrongly forms") (SQL: alter tableclients
add constraintclients_group_id_foreign
foreign key (group_id
) referencesgroups
(id
) on delete cascade)
我的迁移代码哪里有错误?
解决方案
该列需要在两侧匹配。由于groups.id
是无符号大整数,因此 group_id 也需要。改变
$table->unsignedInteger('group_id')
到
$table->unsignedBigInteger('group_id')
推荐阅读
- ruby-on-rails - 如何在 Rails 中为 Faker 输入简写?
- python - List wtih Python
- xamarin - 删除 Xamarin Forms UWP 的自定义条目和编辑器上的边框
- c++ - 如果 constexpr 失败,为什么 C++17 的这种用法会失败?
- python - 使用 Behave 运行一系列特征文件
- javascript - 我可以在 jQuery 的 div 中显示所有变量结果吗?
- javascript - Jest 差异中的自定义类
- java - 如何在 Intellij 2020.1 中运行 JUnit 测试时禁用安全管理器?
- java - 在 compareTo() 中比较两个泛型
- jquery - 无法显示数据使用ajax?