无法更新 Supabase table,因为它没有副本标识

Cannot update Supabase table because it does not have a replica identity

当我尝试使用 Supabase 进行第一次 table 更新时,代码如下:

await db.from("welcome").update({visit_count: newCount});

出现错误:

{
  "hint":"To enable updating the table, set REPLICA IDENTITY using ALTER TABLE.",
  "details":null,"code":"55000",
  "message":"cannot update table \"welcome\" because it does not have a replica identity and publishes updates"
}

在这种情况下,问题是我创建了没有主键的 welcome table。

这个错误实际上与 Supabase 无关,它是一个与逻辑复制相关的 Postgres 错误:https://pgdash.io/blog/postgres-replication-gotchas.html

有几个解决方案:

  • 确保你有一个主键列
  • 使用 alter table 命令将一组特定的列设置为 replica identity
  • 使用alter table命令将replica identity设置为full