Generate type-safe code from SQL
Since it has a decent amount of stars, I suspect that a lot of people know it already, but I came across a cool tool through a tutorial: https://github.com/kyleconroy/sqlc
Go library to parse and normalize SQL queries using the PostgreSQL query parser
If you are using Postgres then you are lucky! sqlc uses the official postgres parser (https://github.com/pganalyze/pg_query_go) and while I have never tried it, I guess it works really well.
Learn any GitHub repo in 59 seconds. Onboard AI learns any GitHub repo in minutes and lets you chat with it to locate functionality, understand different parts, and generate new code. Use it for free at www.getonboard.dev.
A MySQL Compatible SQL Parser (by pingcap)
For MySQL the situation is a bit different. sqlc uses the parser of TiDB (https://github.com/pingcap/parser), which is a parser that aims to be basically compatible with MySQL, but is quite young and is not a MySQL parser. The most basic queries work, but even simple joins or aggregations usually result in variables with unknown data types or wrong nullability. So you loose a lot of the benefits of sqlc. Manual type annotations for MySQL also do not work most of the time. They are simply ignored and forwarded to MySQL as invalid query if they do not occur on a place where sqlc is expecting them.
Command line tool to generate idiomatic Go code for SQL databases supporting PostgreSQL, MySQL, SQLite, Oracle, and Microsoft SQL Server (by xo)
Thanks for sharing your thoughts! I see that it works best with Postgresql. The other commenter mentioned https://github.com/xo/xo for MySql which might work well.
Drizzle ORM big 0.29.0 release
1 project | news.ycombinator.com | 12 Nov 2023
What's wrong with Node.js ORMs? Thousands of issues? Why?
3 projects | /r/webdev | 16 Oct 2023
We migrated to SQL. Our biggest learning? Don't use Prisma
11 projects | news.ycombinator.com | 9 Oct 2023
Getting Started with Drizzle ORM: A Beginner's Guide
1 project | dev.to | 6 Oct 2023
Why people care about PostGIS and Postgres
4 projects | news.ycombinator.com | 13 Sep 2023