Skip to content
SPECIFICTION
Get listed

yoyo-migrations

ollycope.com

Self-hosted
Visit ollycope.com
Spec score 6.6 #30 of 32 in Database Migration Tools

Spec sheet

Purpose
Yoyo is a database schema migration tool whose migrations are SQL files or Python scripts.Read 11 Oct 2026 · ollycope.com
Support
The project documentation directs users to its issue tracker and mailing list for issues, questions, and suggestions.Read 11 Oct 2026 · ollycope.com
License
PyPI lists the license as Apache Software License (Apache).Read 5 Oct 2026 · pypi.org
Apply and rollback
Its command line can list, apply, roll back, reapply, and mark migrations.Read 11 Oct 2026 · ollycope.com
Credential handling
The prompt-password option prompts for a database password to help prevent it from appearing in process listings.Read 11 Oct 2026 · ollycope.com
Custom backends
Custom database backends can be added as Python packages and discovered through entry points.Read 11 Oct 2026 · ollycope.com
Database backends
Documented backends include PostgreSQL, MySQL, SQLite, ODBC, Oracle, Snowflake, and Redshift.Read 11 Oct 2026 · ollycope.com
Database limitation
Some databases, including MySQL, do not support rolling back DDL statements, so a failed migration may require manual database recovery.Read 11 Oct 2026 · ollycope.com
Installation
The documentation instructs users to install yoyo-migrations from PyPI with pip.Read 5 Oct 2026 · ollycope.com
Intended audience
PyPI classifies the package for developers and the console environment.Read 11 Oct 2026 · pypi.org
Migration controls
The command line can apply, roll back, reapply, list, mark, and unmark migrations.Read 5 Oct 2026 · ollycope.com
Migration dependencies
Migrations can declare dependencies, and yoyo runs them in dependency then filename order.Read 5 Oct 2026 · ollycope.com
Migration formats
Migration scripts can be written as SQL files or Python scripts.Read 5 Oct 2026 · ollycope.com
Migration ordering
Migrations can declare dependencies and run in dependency then filename order.Read 11 Oct 2026 · ollycope.com
Python integration
Yoyo can also be called from Python code to read migrations and apply or roll them back through a database backend.Read 11 Oct 2026 · ollycope.com
Python steps
Python migrations can use SQL queries or Python functions for apply and rollback steps.Read 11 Oct 2026 · ollycope.com
Python use
Yoyo can be called from Python code to read migrations and apply or roll them back.Read 5 Oct 2026 · ollycope.com
Security configuration
The documentation shows SSL options for MySQL connections, including certificate and key settings.Read 11 Oct 2026 · ollycope.com
Transaction limitation
Some databases, such as MySQL, do not support rolling back DDL statements, so errors may require manually resetting database state.Read 5 Oct 2026 · ollycope.com
Transactions
Each migration runs in a separate transaction with savepoints isolating its steps, where supported by the database.Read 11 Oct 2026 · ollycope.com
Unsupported backends
The package listing says ODBC and Oracle backends are available but unsupported.Read 5 Oct 2026 · pypi.org

Where Specifiction places it

Alternatives to yoyo-migrationsAll alternatives →