Skip to content

Piszmog/migrate-libsql

Repository files navigation

migrate-libsql

A simple command-line tool for running database migrations on LibSQL/Turso databases using golang-migrate.

Features

  • Run migrations up (apply all pending) or down (rollback specific steps)
  • Support for LibSQL URLs with authentication tokens
  • File system-based migration sources
  • Built with Go for cross-platform compatibility

Installation

Download the latest binary from the releases page or build from source:

go install github.com/Piszmog/migrate-libsql@latest
go get -tool github.com/Piszmog/migrate-libsql

Usage

migrate-libsql -url <libsql-url> -token <auth-token> -migrations <migrations-dir> [options]

Flags

Flag Default Required Description
-url - LibSQL database URL (e.g., libsql://database-name.turso.io)
-token - LibSQL authentication token
-migrations - Path to directory containing migration files
-direction up Migration direction: up (apply) or down (rollback)
-steps 1 Number of steps for down migration

Examples

# Apply all pending migrations
migrate-libsql -url "libsql://my-db.turso.io" -token "your-token" -migrations "./migrations"

# Rollback the last migration
migrate-libsql -url "libsql://my-db.turso.io" -token "your-token" -migrations "./migrations" -direction down

# Rollback the last 3 migrations  
migrate-libsql -url "libsql://my-db.turso.io" -token "your-token" -migrations "./migrations" -direction down -steps 3

Migration Files

Migration files should follow the standard golang-migrate naming convention:

migrations/
├── 001_initial_schema.up.sql
├── 001_initial_schema.down.sql
├── 002_add_users_table.up.sql
└── 002_add_users_table.down.sql

About

SQL Migration for libsql

Topics

Resources

License

Stars

Watchers

Forks

Languages