What’s your preferred setup to work with SQL DB (without ORM) ?

This page summarizes the projects mentioned and recommended in the original post on /r/golang

Our great sponsors
  • InfluxDB - Collect and Analyze Billions of Data Points in Real Time
  • Mergify - Updating dependencies is time-consuming.
  • SonarQube - Static code analysis for 29 languages.
  • sqlx

    general purpose extensions to golang's database/sql

    I basically use the db/sql package/interface, but I use sqlx for its StructScan ability that will scan straight into my db struct rather than having to scan into the individual fields.

  • sqlc

    Generate type-safe code from SQL

    sqlc for Postgresql databases is really nice. MySQL also works but has more issues and currently they are working on SQLite support.

  • InfluxDB

    Collect and Analyze Billions of Data Points in Real Time. Manage all types of time series data in a single, purpose-built database. Run at any scale in any environment in the cloud, on-premises, or at the edge.

  • sqlf

    sqlf generates parameterized SQL statements in Go, sprintf style

    sqlf for building parameterized queries, yet to settle on a row-to-struct mapper, doing it manually for now

  • go-sqlite

    Low-level Go interface to SQLite 3

    I like and use https://github.com/zombiezen/go-sqlite for CGo-free SQLite. It avoids some of the problems database/sql has, discussed here: https://crawshaw.io/blog/go-and-sqlite.

  • Dapper

    Dapper - a simple object mapper for .Net

    sqlx has worked pretty well for me if you are looking for a fairly light wrapper. I wish there was an equivalent of the dapper library for C#/.NET.

  • bun

    SQL-first Golang ORM (by uptrace)

    Though, i've would give a try to bun

  • xo

    Command line tool to generate idiomatic Go code for SQL databases supporting PostgreSQL, MySQL, SQLite, Oracle, and Microsoft SQL Server (by xo)

    i use xo . Reason is i prefer designing schema first and creating golang scaffolding later. Xo takes schema and gives me basic create/update/delete operations by default and i can also generate gocode for any sql queries that i write.

  • Mergify

    Updating dependencies is time-consuming.. Solutions like Dependabot or Renovate update but don't merge dependencies. You need to do it manually while it could be fully automated! Add a Merge Queue to your workflow and stop caring about PR management & merging. Try Mergify for free.

  • Squirrel

    Fluent SQL generation for golang

    We have used squirrel (https://github.com/Masterminds/squirrel) for query building and sqlx as a database/sql wrapper quite extensively.

  • sqly

    Simple database/sql helper library to execute queries

    That's what I'm trying to remove with sqly (Scully). But it's mostly a PoC at this moment.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts