You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Supabase初始迁移报错:relation 'flow_state_created_at_idx'已存在

解决Supabase GitHub Actions迁移报错:relation "flow_state_created_at_idx" already exists

报错含义解析

这个错误是PostgreSQL的重复对象冲突(错误码42P07),意思是你要创建的flow_state_created_at_idx索引已经在auth.flow_state表上存在了,但你的迁移脚本里又执行了一次CREATE INDEX语句,导致数据库抛出冲突错误。

问题原因

大概率是这两种情况:

  • Supabase的auth schema默认自带了这个索引,而你用CLI生成的迁移脚本里重复添加了创建该索引的语句;
  • 预发布环境的数据库之前已经通过其他方式(比如手动执行SQL、旧版本迁移)创建过这个索引,现在新迁移脚本又重复执行创建操作。

解决步骤

  1. 确认索引状态
    在Supabase预发布环境的SQL编辑器里执行以下语句,确认auth.flow_state表上是否真的存在这个索引:
SELECT indexname FROM pg_indexes WHERE tablename='flow_state' AND schemaname='auth';

如果查询结果里包含flow_state_created_at_idx,说明索引确实已存在。

  1. 修改迁移脚本
    找到触发报错的那条迁移文件,把里面的创建索引语句:
CREATE INDEX flow_state_created_at_idx ON auth.flow_state USING btree (created_at DESC);

改成带IF NOT EXISTS的安全写法:

CREATE INDEX IF NOT EXISTS flow_state_created_at_idx ON auth.flow_state USING btree (created_at DESC);

或者,如果确认这个索引是Supabase auth模块默认自带的,直接删除这条创建索引的语句即可。

  1. 重新执行工作流
    提交修改后的迁移脚本到GitHub,重新触发GitHub Actions工作流,应该就能解决这个冲突问题。

内容的提问来源于stack exchange,提问作者Augusto Oliveira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 14:52:03