😂😂浪费了 3 天时间尝试在新项目中使用 prisma,最后还是决定回到 typeorm

19 小时 43 分钟前
 flyingcrp

兄弟们,prisma 有坑,快跑🏃‍♀️💨💨💨💨💨💨💨💨

https://github.com/prisma/prisma/issues/101421

https://github.com/prisma/prisma/issues/10142#issuecomment-1835279273

https://github.com/prisma/prisma/issues/20128

在遇到上面 1,2 的时候硬着头皮继续,但是遇到 3 的时候彻底让我放弃了它。

提桶跑路了 🏃‍♀️💨💨💨💨💨💨💨

兄弟们,节约时间,原理 prisma

1689 次点击
所在节点    Node.js
32 条回复
dssxzuxc
13 小时 35 分钟前
cutchop
13 小时 22 分钟前
typescript 挺好的,不知道为什么 prisma 要发明新的格式
rocmax
13 小时 6 分钟前
@BeautifulSoap
1. 文档的问题确实存在,过于简略,需要自己摸索
2.这些都支持啊,我一看还以为这是以前旧帖子呢。drizzle 基本就是把 ts 翻译成 sql ,这种一个关键字就解决的问题怎么会不支持。没有听说过 union index ,你是指复合索引吗,也支持的啊。union 操作倒是不支持是由于类型推断困难,不重视类型安全的可能会支持。
3. 类型检查当然要基于 schema 定义了,要不咋办? count (*)可以使用 sql<number>标注类型
4. 同上,你不给类型标注,数据库返回的是 text ,不得按类型 parse 吗。
rocmax
12 小时 57 分钟前
@cutchop 跟 drizzle 比起来 prisma 的 schema 确实简单好懂,我一个简单项目 drizzle schema 都快 1000 行了,除了我自己没人能看懂,估计也没人有耐心看完,幸好有 visualizer 。
rocmax
12 小时 54 分钟前
@justdoit123 是的,比如 golang:

https://github.com/steebchen/prisma-client-go

由于 prisma core 从 rust 改回 ts ,被放弃了
rocmax
12 小时 38 分钟前
@BeautifulSoap 对不起,上面说的有误,sql<T>`COUNT(*)`类型标注没有用,需要 mapWith 函数
k9982874
12 小时 31 分钟前
用不上那些高大上的 orm 功能,转到了 postgres.is
楼上推荐的 Kysely ,感觉比较像 gorm ,有空试试
BeautifulSoap
11 小时 59 分钟前
@rocmax
2. 你自己试试看 mysql 的 schema 里能不能指定 asc 或者 desc 的 index 吧。postgresql 可以,但是 mysql 不行的。并且 mysql 的复合索引文档里根本找不到怎么用
4. 这个你自己亲自写一下就知道了。就最简单的用 drizzle 执行 mysql 的 `show tables` 然后解析出所有表格。保证你一写一个不吱声。官方文档里只写了怎么执行 raw sql 但对怎么获取到 raw sql 的返回值只字不提。最后花了 N 久时间才找到解决办法
rocmax
11 小时 4 分钟前
@BeautifulSoap
https://drizzle.run/nx1z72u347hvkyjd0zspe7ki
这样如何?
我司从去年初就全面改用 postgresql 了,确实我说的是 postgresql 的情况。
mysql 的时期用的是 prisma
rocmax
10 小时 43 分钟前
@BeautifulSoap 我知道为啥对 sql<T>类型标注产生错觉了,好像 COUNT 的返回值类型就是 number ,即便标注了 string 依旧是 number
https://drizzle.run/lstx39x8scbt8gotd2ndrwhp
Trim21
10 小时 30 分钟前
现在在用 drizzle ,但是感觉维护者对 mysql 相关的特性不太重视 ...
ratazzi
2 小时 25 分钟前
正在用 prisma 看了这帖子怕了,typeorm 简单试过一下,看到生成的 SQL 之后果断放弃,现在我对 JS 写 CRUD 一点兴趣都没了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://yangjunhui.monster/t/1131986

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX