gpt4 book ai didi

laravel - SQLSTATE[HY000] : General error: 1005 during a migration in Laravel

转载 作者:行者123 更新时间:2023-12-04 04:21:47 24 4
gpt4 key购买 nike

我正在使用 Laravel 6。我想运行我的迁移文件,但在迁移我的“create_users_table”文件期间出现以下错误:

SQLSTATE[HY000]: General error: 1005 Can't create tab
le `thenewmeetingapp`.`#sql-f3c_b8` (errno: 150 "Foreign key constraint is incorrectly formed") (SQL: alter table
`users` add constraint `users_permission_id_foreign` foreign key (`permission_id`) references `permissions` (`id`))

我认为错误出在“用户”表和“权限”表之间(每个用户都必须有一个权限,每个权限都可以有很多用户)。然而,表“users”甚至与表“meeting_user”相关,表“meeting_user”是与表“meetings”的连接表。

用户:

Schema::create('users', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name');
$table->string('surname');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('username')->unique();
$table->string('password');
$table->bigInteger('permission_id')->unsigned();
$table->enum('is_active', array(0, 1))->default(1);
$table->rememberToken();
$table->timestamps();
$table->foreign('permission_id')->references('id')->on('permissions');

});

权限:

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

session 用户:

Schema::create('meeting_user', function (Blueprint $table) {
$table->unsignedBigInteger('user_id');
$table->unsignedBigInteger('meeting_id')->unsigned();
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
$table->foreign('meeting_id')->references('id')->on('meetings')->onDelete('cascade');
});

用户表的迁移是要运行的第一个迁移。但是,我也尝试在权限表迁移之前和用户表迁移之后运行,但没有任何改变。错误是一样的。有人可以帮助我吗?

最佳答案

在将键添加到 users 之前,您需要创建 users 外键指向的其他表,permissions .所以这个创建 users 表的特定迁移不能是第一个。另一个表 permissions 必须存在才能引用它。

如果您无法重新排序这些迁移,您可以从 users 迁移中删除外键部分。然后创建一个新的迁移,改变 users 表并添加外键;现在(通过时间戳)在 permissions 表迁移之后运行。

关于laravel - SQLSTATE[HY000] : General error: 1005 during a migration in Laravel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59012922/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com