Skip to main content
Geni Hero Light

What is Geni?

Geni is a standalone database migration tool designed to work in conjunction with your preferred ORM, toolkit, or code. Built with Rust, it’s blazingly fast, memory-safe, and designed for collaborative teams. The tool allows multiple developers to collaborate without overriding database migrations and can be integrated into your CI/CD pipeline to ensure your database stays up to date alongside your code.
Geni was heavily inspired by dbmate and was created to provide robust support for LibSQL and modern database workflows.

Key Features

Multi-Database Support

Works with PostgreSQL, MySQL, MariaDB, SQLite, and LibSQL (Turso)

Timestamp-Based Migrations

Automatic timestamp prefixing prevents migration conflicts in teams

Transaction Support

Run migrations in transactions by default with opt-out capability

Schema Dumping

Automatically dump schema.sql after migrations for version control

CI/CD Ready

GitHub Actions integration and Docker images available

Library & CLI

Use as a CLI tool or integrate as a Rust library in your applications

Supported Databases

Geni provides first-class support for multiple database systems:
  • PostgreSQL - Full support with native schema dumping
  • MySQL - Complete migration support with mysqldump integration
  • MariaDB - Full compatibility with mariadb-dump
  • SQLite - Native support with built-in schema extraction
  • LibSQL - Modern SQLite fork with HTTP support (Turso compatible)

Quick Example

Here’s how simple it is to get started with Geni:
# Create a new migration
DATABASE_URL="postgres://localhost/myapp" geni new create_users_table

# Run all pending migrations
geni up

# Check migration status
geni status

# Rollback last migration
geni down

Why Choose Geni?

Built with Rust

Lightning fast performance, minimal memory footprint, and memory safety guarantees. Geni is optimized for speed and reliability.

Team Collaboration

Timestamp-based migrations prevent conflicts when multiple developers create migrations simultaneously.

ORM Agnostic

Works alongside any ORM or database toolkit. Use with Diesel, SQLx, SeaORM, or raw SQL.

Production Ready

Used in production environments with Docker support, GitHub Actions, and comprehensive error handling.

Getting Started

Installation

Install Geni via Homebrew, Cargo, Docker, GitHub releases, or package managers

Quickstart Tutorial

Learn the basics with a hands-on tutorial in under 5 minutes

Configuration

Configure migrations folder, database URLs, and environment variables

Commands Reference

Complete reference for all Geni CLI commands and options

Community & Support

Check out Database Migrations made easy with Geni by Jamie Barton for a video walkthrough.
Geni is open source and available on GitHub. Contributions, issues, and feature requests are welcome!

Build docs developers (and LLMs) love