如何在迁移中从表中删除软删除?

52

我在迁移中向我的表添加软删除列:

public function up()
{
    Schema::table("users", function ($table) {
        $table->softDeletes();
    });
}

但是,如果我回滚迁移,我如何在我的 down() 函数中移除它们?是否有内置方法可供使用,还是我只需手动删除添加的列?

但是,如果我回滚迁移,我该如何在down()函数中删除这些内容?是否有内置方法可以使用,否则我只能手动删除添加的列吗?

1个回答

112

在您的迁移类中使用 dropSoftDeletes()

public function down()
{
    Schema::table("users", function ($table) {
        $table->dropSoftDeletes();
    });
}

这个方法可以在Illuminate\Database\Schema\Blueprint.php中找到:

public function dropSoftDeletes()
{
    $this->dropColumn('deleted_at');
}

自 Laravel 5.5 开始,这些信息可以在文档中找到。


谢谢;你有用过实际的API文档来找到这个吗?我正在使用https://laravel.com/docs/5.2上的文档,它提供了很好的概述,但并没有列出每个可用的方法。 - miken32
3
你最好熟悉核心课程。文档总是缺少一些细节上的解释。 - Álvaro Guimarães
7
天啊,在执行dropSoftDeletes之后,我们将会有一大堆历史记录和实际记录混合在一起... - Yevgeniy Afanasyev
更新Laravel框架文件不是一个好的选择?那么更新呢?等等? - Jquestions
dropSoftDeletes() 已经存在于 Illuminate\Database\Schema\Blueprint.php 中(至少在 Laravel 8.12 中是如此),因此无需更新框架文件。 - Elijah Lofgren
1
它们一直存在,只是没有在文档中。 而且我从未建议过编辑框架文件,请不要这样做@Jquestions - Álvaro Guimarães

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接