Skip to content

Commit faa8b3c

Browse files
Mazizovaclaude
andauthored
Software: add GORM and SchemaBot (#171)
Two Go ecosystem tools with first-class MySQL support, not yet in the catalog and not covered by the still-open resources/auto-2026-10-31 PR. Claude-Session: https://claude.ai/code/session_011ngofHUCfJpcdn9R2VTQxL Co-authored-by: Claude <[email protected]>
1 parent 2a1a9ce commit faa8b3c

4 files changed

Lines changed: 45 additions & 0 deletions

File tree

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
---
2+
title: "GORM"
3+
link: "https://gorm.io"
4+
github: "go-gorm/gorm"
5+
description: "A full-featured ORM for Go, with first-class MySQL and MariaDB support through its official `gorm.io/driver/mysql` driver (built on go-sql-driver/mysql), alongside associations, hooks, transactions, auto-migrations, and a SQL builder."
6+
subcategories:
7+
- Connectors & Drivers
8+
compatibility:
9+
- MySQL
10+
- MariaDB
11+
pricing:
12+
- Open Source
13+
images:
14+
- logo.png
15+
---
16+
17+
GORM is a developer-friendly ORM for Go covering associations (has one, has many, belongs to, many-to-many, polymorphism), hooks for before/after create, save, update and delete, eager loading with `Preload` and `Joins`, transactions and nested transactions with save points, prepared-statement and dry-run modes, batch inserts, a SQL builder with upsert and locking support, composite primary keys, and auto-migrations.
18+
19+
Its official `gorm.io/driver/mysql` driver connects through `go-sql-driver/mysql` and adds MySQL-specific configuration — default string sizing, datetime precision handling (including a flag for pre-5.6 MySQL, which lacks datetime precision), and dialect-specific DDL for `AutoMigrate`. A `DBResolver` plugin on top of the core library adds multiple-database support and read/write splitting.
20+
21+
Maintained by the go-gorm organization as the actively developed successor to the original `jinzhu/gorm`, it's released under the MIT license and has around 39.7k stars on GitHub.
13.3 KB
Loading
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
---
2+
title: "SchemaBot"
3+
link: "https://github.com/block/schemabot"
4+
github: "block/schemabot"
5+
description: "A GitOps schema-migration tool from Block — SQL files in your repo are the source of truth, and SchemaBot plans and applies the diff against MySQL, Vitess on PlanetScale, or (early alpha) PostgreSQL through pull requests or a CLI."
6+
subcategories:
7+
- Schema Management & Migration
8+
compatibility:
9+
- MySQL
10+
- Vitess
11+
deployment:
12+
- Self-Hosted
13+
- Kubernetes
14+
pricing:
15+
- Open Source
16+
images:
17+
- logo.png
18+
---
19+
20+
SchemaBot is declarative and GitOps-driven: SQL files in a repository act as the shared source of truth across environments. It compares those files against a database's live schema, shows the exact diff, and applies the change through a pull-request workflow or a CLI — importing an existing database's schema into declarative files on first run rather than requiring it to be written out by hand.
21+
22+
For MySQL, schema changes are generally available and run through [Spirit](https://github.com/block/spirit), using instant DDL where supported and an online copy when needed; Vitess on PlanetScale is also generally available, driven through PlanetScale deploy requests with per-shard progress. PostgreSQL support is an early alpha. The PR workflow supports configurable review gates, a promotion order across environments (e.g. staging before production), and lint checks that flag destructive changes before they can be applied.
23+
24+
Block (formerly Square) runs SchemaBot for the majority of its own production schema changes, including MySQL tables spanning terabytes and Vitess databases with hundreds of shards. It's released under the Apache-2.0 license, and distributed as release binaries, a `ghcr.io/block/schemabot` container image, and a Helm chart.
26.4 KB
Loading

0 commit comments

Comments
 (0)