>Gormが本番テーブルの数億件のデータを消そうとした話 - keroxpのScrapbox https://scrapbox.io/keroxp/Gorm%E3%81%8C%E6%9C%AC%E7%95%AA%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E3%81%AE%E6%95%B0%E5%84%84%E4%BB%B6%E3%81%AE%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E6%B6%88%E3%81%9D%E3%81%86%E3%81%A8%E3%81%97%E3%81%9F%E8%A9%B1
なんか、この件が広まってから GORM というライブラリの使用をやめる人が増えた雰囲気。
危険な動作を止めるよう仕様変更されないのは、理由があるのかなぁ(仕様の一貫性とか、ポリシーとか。まぁ、あるいは誰もわざわざ issue 立てしてくれないというのもあるかもしれない)
GORM に限らないが ORM パッケージでデータを update や delete するのは怖い。まぁ,パッケージが安全側に倒してくれるのが一番いいんだけどね
私は ORM の吐き出す SQL をあまり信用してないので,必ずログに生の SQL を吐き出すようにしている。ちなみに GORM は dry run モードが使える
QT: https://mstdn.jp/@zetamatta/111462601428254344 [参照]
Zenn で公開している「PostgreSQL と ORM と Logging と」の中でこの辺の話を愚痴っている(笑)
https://zenn.dev/spiegel/books/a-study-in-postgresql/viewer/wrap-sql-in-kra
ent が登場して今更 GORM はないよなぁとは思うが, ent はDB設計の段階から ent を使わないとめっちゃ使いづらい。
一方で,既存構成を Go で書き直そうとすると ORM では「帯に短し襷に長し」でピッタリくるのがなんだよなぁ。
私が Go で自前で SQL 操作をする場合は(大規模なものは書かないので)もう ORM は諦めて Kra でドライブしている。
>SSH, MySQL, Zerolog, そして Kra
https://text.baldanders.info/golang/ssh-mysql-zerolog-and-kra/