tern
The SQL Fan's Migrator (by jackc)
GORM
The fantastic ORM library for Golang, aims to be developer friendly (by go-gorm)
Our great sponsors
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
tern
Posts with mentions or reviews of tern.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-10-31.
-
database migrations
If you are using postgres and pgx you may want to use tern.
-
Database migration tool
Recently i started using turn its more fun (IMPO) compared to others tool available https://github.com/jackc/tern
-
How do you handle migrations ?
We use https://github.com/jackc/tern library (from the author of the pgx driver). We run migrations in k8s init containers and we do not do rollbacks (only up). Advantages over other popular solutions are:
-
what do you use for migrations? or how do you the sql tables and seeding?
I use tern! It’s the migrator tool written by the same author of pgx the de facto Postgres driver.
I’ve been happy with https://github.com/jackc/tern .
-
orms in go
I use tern for migrations. It’s from the same Author as pgx so everything in that ecosystem plays well.
- Is there a Go alternative to dbdeploy?
-
Does Go have a nice library for database migrations etc without necessarily being a full ORM?
I use https://github.com/jackc/tern + .env files which interpolate with its config for various environments.
-
What migration/versioning tool do you use?
Tern is a great language and framework agnostic solution for SQL migrations https://github.com/jackc/tern
- Most recommended database migration tool? using golang for the record
GORM
Posts with mentions or reviews of GORM.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2024-01-18.
-
Go ORMs Compared
GORM is a comprehensive ORM tool in Go, offering a code-first approach which allows defining database schemas using struct tags in Go. It's known for its developer-friendly nature, making it suitable for both beginners and experienced users. GORM supports a variety of SQL databases like MySQL, PostgreSQL, and SQLite. It's designed to be flexible, allowing developers to drop down to raw SQL when necessary. However, it's important to be cautious about its performance implications in large-scale applications.
-
6 🔥 Awesome Golang packages (web devs)
Homepage: https://gorm.io/
- Tenha controle sobre seu SQL com Golang e SQLC
-
Build an Event-Driven Uptime Monitor in Go 🚀
Since most of these APIs will be simple CRUD (Create/Read/Update/Delete) endpoints, let's build this service using GORM, an ORM library that makes building CRUD endpoints really simple.
- [OpenSource] I am building high performance Plex alternative in Go for Movies and TV Show
-
Building Robust Applications in Go: Integrating Envconfig, Gorm, and OpenSearch
After successfully configuring the application, it's time to delve into integrating the data layer. For this purpose, I will utilize gorm, a powerful SQL ORM that facilitates rapid development of the data layer using model structs.
-
Why ORMs are so hated?
I have never hated gorm and it serves me well. However I tend to feed it raw SQL very often.
-
Golang RESTAPI boilerplate repository
Array of values with embedded value all pointed to the last value, reflect code was broken: https://github.com/go-gorm/gorm/pull/5901 data corruption
-
Does Go, has something similar to Laravel eloquent (ORM) ?
Yes. I think the most popular is gorm (https://gorm.io). I use it myself and love it, but i know that many people are against using it. For simple queries, the code is looking really clean. If you have complex queries with e.g. sub selects, your code looks like a car accident.
-
Tools besides Go for a newbie
IDE: use whatever make you productive. I personally use vscode. VCS: git, as golang communities use github heavily as base for many libraries. AFAIK Linter: use staticcheck for linting as it looks like mostly used linting tool in go, supported by many also. In Vscode it will be recommended once you install go plugin. Libraries/Framework: actually the standard libraries already included many things you need, decent enough for your day-to-day development cycles(e.g. `net/http`). But here are things for extra: - Struct fields validator: validator - Http server lib: chi router , httprouter , fasthttp (for non standard http implementations, but fast) - Web Framework: echo , gin , fiber , beego , etc - Http client lib: most already covered by stdlib(net/http), so you rarely need extra lib for this, but if you really need some are: resty - CLI: cobra - Config: godotenv , viper - DB Drivers: sqlx , postgre , sqlite , mysql - nosql: redis , mongodb , elasticsearch - ORM: gorm , entgo , sqlc(codegen) - JS Transpiler: gopherjs - GUI: fyne - grpc: grpc - logging: zerolog - test: testify , gomock , dockertest - and many others you can find here
What are some alternatives?
When comparing tern and GORM you can also consider the following projects:
ent - An entity framework for Go
Xorm
SQLBoiler - Generate a Go ORM tailored to your database schema.
go-pg - Golang ORM with focus on PostgreSQL features and performance
pgx - PostgreSQL driver and toolkit for Go
beego orm
sqlc - Generate type-safe code from SQL
gorp - Go Relational Persistence - an ORM-ish library for Go
prisma-client-go - Prisma Client Go is an auto-generated and fully type-safe database client
bun - SQL-first Golang ORM
bun - Incredibly fast JavaScript runtime, bundler, test runner, and package manager – all in one
xorm - xorm是一个简单而强大的Go语言ORM库,通过它可以使数据库操作非常简便。本库是基于原版xorm的定制增强版本,为xorm提供类似ibatis的配置文件及动态SQL支持,支持AcitveRecord操作