gpt4 book ai didi

laravel - 删除然后在当前向上迁移功能中创建相同的列

转载 作者:行者123 更新时间:2023-12-01 08:28:08 27 4
gpt4 key购买 nike

Schema::table('users', function (Blueprint $table) {
$table->dropTimestamps();
$table->dropColumn(['email', 'bio']);

$table->string('email', 20)->unique()->after('id');
$table->string('bio', 150)->after('surname');
$table->timestamps();
});

这就是我现在所拥有的。所以,我的表中有 atm 列,但我想稍微修改和重新排列它们。但是当我运行迁移时,我收到 SQL 错误 email列存在。对于 bio,我可能会得到同样的错误。和 timestamps以及。我有点理解为什么会发生这种情况,所以我要问的只是一种解决方法。

是否可以在一次迁移中完成我想要的内容,或者我必须创建一个迁移以删除列,然后创建一个单独的迁移以按照我想要的方式创建它们?

最佳答案

只需将架构分成两个调用

public function up()
{
Schema::table('users', function (Blueprint $table) {
$table->dropTimestamps();
$table->dropColumn(['email', 'bio']);
});

Schema::table('users', function (Blueprint $table) {
$table->string('email', 20)->unique()->after('id');
$table->string('bio', 150)->after('surname');
$table->timestamps();
});
}

这样,更改发生在具有两个数据库调用的一次迁移中。

关于laravel - 删除然后在当前向上迁移功能中创建相同的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28525542/

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