Hi all,
I built a small database migration tool for Go called miglite:
https://github.com/gookit/miglite
The goal is to keep migrations as plain SQL files instead of adding a schema DSL or SQL generation layer. A migration file uses `UP` and `DOWN` sections:
```sql
-- Migrate:UP
CREATE TABLE users (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL
);
-- Migrate:DOWN
DROP TABLE users;
```
The CLI supports the usual workflow:
```bash
miglite create add-users-table
miglite up --yes
miglite status
miglite down
```
A few design choices:
- it is based on `database/sql`
- it supports `DATABASE_URL` and `MIGRATIONS_PATH`
- it can scan multiple migration directories
- the CLI includes SQLite/MySQL/PostgreSQL support
- when used as a library, it does not bundle DB driver dependencies; the application chooses its own driver
I wrote a short post with more details here:
https://inhere.github.io/en/blog/2026/gookit-miglite-intro/
I would be interested in feedback from other Go users: for small services, do you usually prefer raw SQL migration files, a migration DSL, or migrations generated by an ORM?