首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SequelizeDatabaseError:无法在只读事务中执行更新

SequelizeDatabaseError:无法在只读事务中执行更新
EN

Database Administration用户
提问于 2018-04-03 20:50:03
回答 2查看 11.7K关注 0票数 2

我目前正在使用SequelizeNodeJSPostgreSQL。我有用户谁更新他们的帐户密码在第一次登录。嗯,今天我在3-4成功登录后出现了这个错误。

这到底是什么意思?我没做什么不寻常的事。谷歌搜索根本没有帮助我,因为他们似乎没有我的问题。

此查询中出现此错误:

代码语言:javascript
复制
UPDATE "Users" 
SET "password"='-hash-',
"verificationCode"=0,
"startedOn"='2018-04-03 20:45:31.801 +00:00',
"emailVerified"=true,
"updatedAt"='2018-04-03 20:45:31.802 +00:00' 
WHERE "userId" = 84

有什么帮助吗?

EN

回答 2

Database Administration用户

发布于 2018-04-03 22:46:04

它可能是由这些原因引起的。

1)你与一个跟随者相连。检查它,使用select pg_is_in_recovery(); - on主程序,它将返回false

代码语言:javascript
复制
test=# select pg_is_in_recovery();
 pg_is_in_recovery
-------------------
 f
(1 row)

当然,您只能在主DB上运行更新。

2) (我认为这不是您的情况,但为了完整起见,我添加了它)您正在使用主DB,但是事务或会话被设置为“只读”:

代码语言:javascript
复制
set session characteristics as transaction read only; 

或者,正在执行更新的内部事务:

代码语言:javascript
复制
set transaction read only;
票数 3
EN

Database Administration用户

发布于 2022-07-15 14:53:02

数据库可能有两个不同的db url/connection字符串,一个用于只读字符串,另一个用于写字符串。请检查并使用写db网址/连接字符串。

票数 -1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/202959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档