Laravel 迁移 onDelete() 查询异常

我有一个带有外键的简单 Laravel 迁移。


public function up()

{

    Schema::create('smp_posts', function (Blueprint $table) {

        $table->increments('id');

        $table->integer('project_id')->unsigned();

        // Some other stuff

        $table->foreign('project_id')->references('id')->on('smp_projects')->onDelete('cascade');

    });

}

当我运行 migrate 命令时php artisan migrate:refresh。我收到此错误:


照亮\数据库\查询异常:


SQLSTATE[2BP01]:依赖对象仍然存在:7


错误:无法删除表 smp_projects 因为其他对象依赖它详细信息:表 smp_posts 上的约束 smp_posts_project_id_foreign 依赖于表 smp_projects


通常应该删除所有孩子,因为我将其设置onDelete()为级联。正确的?怎么了?


30秒到达战场
浏览 195回答 1
1回答

繁花如伊

cascade您设置的选项仅在您删除行时适用。如果您删除未触发约束的表,这就是您收到错误的原因。您应该查看Postgres 文档的Dependency Tracking部分
打开App,查看更多内容
随时随地看视频慕课网APP