数据库 行锁在日常开发中用的真的不多吗?Prisma 居然没有提供行锁的 API

willx · May 31, 2024 · Last by msl12 replied at July 05, 2024 · 1148 hits

新项目试了一下 Node 目前被推荐最多的 ORM prisma https://github.com/prisma/prisma

然后发现这个框架居然没有提供行锁的任何 API,只能写 raw sql 来实现。

但在个人认知里,其实行锁用的还比较频繁,特别是现在互联网公司非常喜欢在 mysql 里面存序列化后的 JSON,很多需要增量更新的情况,比如读取全量的 json 字符串,然后把新的字段更新进去,再保存。没有行锁的话,这个操作很容易就互相覆盖了。(虽然这是一种不太好的实践,但说实话在几家大厂都见过大量这种写法)

去年的 ISSUE,到现在也没啥声音 https://github.com/prisma/prisma/issues/17136

Raw SQL 遇到过错误 https://github.com/prisma/prisma/issues/21570

我以为这种 RawSQL 的 API 是软件的底层,应该先设计。结果一年多都没解决。

吹自己是次世代,我现在对 JavaScript 的东西保持怀疑。

次世代框架你也不能说它错,反正不是“现代”能用的框架。

Reply to Mark24

还是老一点的东西好用,这个 prisma 一堆人推荐,结果 issue 长期两三千个,碰到问题就 gg。node 这边老牌的 sequelize 和 TypeORM 都挺好的

Reply to willx

是的。时髦有风险。

Node 能做的,Sinatra + Sequel(ORM)其实都行。我经常用这个渲染页面。

Ruby 下的 Sequel(ORM)0 BUG,实在是强。

Reply to Mark24

JS 圈子营销严重,新出来的工具全都号称次世代产品、颠覆性设计之类的,然后网站都做的非常 fancy。擅长文档营销,写一些看起来很厉害实则全是水文的「Ultimate Guide」和「Comprehensive Guide」。

Reply to ttys000

js 这边其实很多东西很早很早就有了,而且也经过了超大型项目的验证,比如什么 express,koa,eggjs 之类的。

但一堆人总觉得这些老东西有问题,我们要重新设计“现代化”的 XXXX 库,三年两载就出来一堆新库,与之相伴的还有造一堆新概念。最后大家兴冲冲地跑去用,结果发现一堆问题 😑 还真不如用以前的东西,至少真的能完成任务。

Reply to willx

确实是。总是出来一堆「现代化的 xxxx」,制造一些新概念,往往还是新瓶装旧酒,质量还不如老的好。

Reply to magicdawn

https://github.com/typeorm/typeorm/issues/4686#issuecomment-528332702

这个回答提醒了我们,还是要使用有固定团队维护的技术产品。比如 Rails。

短暂时间用过 prisma, 但是确实没感受到"次世代"先进的地方在哪

Reply to magicdawn

还行吧,基础功能都有,不要依赖一些骚操作一般没啥问题,作者好几年前确实说自己没精力维护了

只能说由于 node 在后端的使用频率和场景不够丰富导致其 orm 工具相对比较简单,后端这个基本都是历史决定其地位老软件轻易不会修改

某些前端童鞋非要让 js 做后端的事情... 能把前端做好就谢天谢地了

13 Floor has deleted
14 Floor has deleted

什么娱乐城

You need to Sign in before reply, if you don't have an account, please Sign up first.