yoyo-migrations
Database migrations with SQL
Decision gist · record as of 2026-08-14
Yes, if your project uses PostgreSQL, MySQL, or SQLite and you need a lightweight, straightforward migration tool. The low install friction and permissive license make it accessible. However, be aware that the package is dormant (no releases for 734 days), so consider whether you need active maintenance for compatibility with newer database versions or Python releases, or whether an actively maintained alternative better fits your risk tolerance.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires a supported database (PostgreSQL, MySQL, or SQLite) and appropriate database driver installed separately.
- Low install friction with only three runtime dependencies (sqlparse, tabulate, importlib-metadata).
- However, the package is dormant—no releases for 734 days as of the fact sheet date—which may signal reduced maintenance responsiveness for bug fixes or compatibility updates.
License · maintenance · safety
Apache (permissive) — Licensed under Apache (permissive), which allows commercial and private use with minimal restrictions, making it safe for most projects from a licensing standpoint.
last release 2024-08-10 (734 days)
0 known vulnerabilities (OSV.dev, 2026-08-14) · 734,697 downloads/mo, #5,197 on PyPI
Alternatives
Verify before relying
pip install yoyo-migrations
from yoyo import step
step(
"CREATE TABLE foo (id INT, bar VARCHAR(20), PRIMARY KEY (id))",
"DROP TABLE foo",
)- Whether the 734-day dormancy affects real-world compatibility with recent database versions or Python releases.
- Whether ODBC and Oracle backends mentioned as 'unsupported' are maintained or functional.
- Comparison of feature completeness and migration workflow against actively maintained alternatives like Alembic or South.
What it is and what it does
Yoyo-migrations is a database schema migration tool that manages version-controlled changes to your database structure. You write migrations as either raw SQL files or Python scripts containing SQL statements, and yoyo provides command-line tools to apply them forward, roll them back, and manage dependencies between migration steps. It supports PostgreSQL, MySQL, and SQLite out of the box.
The tool is designed to integrate into your application's deployment workflow, letting you track schema changes alongside code changes. Migrations are simple to write—a Python migration is just a call to the step() function with forward and rollback SQL—and yoyo handles the bookkeeping of which migrations have been applied to which database. It has been marked Production/Stable since its first release in 2010, though it has not had a new release for 734 days.
Use it for
- Manage schema changes in a PostgreSQL, MySQL, or SQLite application as part of your deployment pipeline.
- Write reversible database migrations in Python or SQL to evolve your schema safely across environments.
- Track and enforce migration dependencies so that schema changes are applied in the correct order.
- Rollback a migration if a deployment fails or a schema change needs to be undone.
- Version-control your database schema changes alongside your application code.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if your project uses PostgreSQL, MySQL, or SQLite and you need a lightweight, straightforward migration tool.
The low install friction and permissive license make it accessible. However, be aware that the package is dormant (no releases for 734 days), so consider whether you need active maintenance for compatibility with newer database versions or Python releases, or whether an actively maintained alternative better fits your risk tolerance.
Install
yoyo-migrations on PyPI
Before you install
Low install friction with only three runtime dependencies (sqlparse, tabulate, importlib-metadata). However, the package is dormant—no releases for 734 days as of the fact sheet date—which may signal reduced maintenance responsiveness for bug fixes or compatibility updates.
Requires a supported database (PostgreSQL, MySQL, or SQLite) and appropriate database driver installed separately.
License in practice
Licensed under Apache (permissive), which allows commercial and private use with minimal restrictions, making it safe for most projects from a licensing standpoint.
Quickstart
pip install yoyo-migrations
from yoyo import step
step(
"CREATE TABLE foo (id INT, bar VARCHAR(20), PRIMARY KEY (id))",
"DROP TABLE foo",
)
Verify before relying
- Whether the 734-day dormancy affects real-world compatibility with recent database versions or Python releases.
- Whether ODBC and Oracle backends mentioned as 'unsupported' are maintained or functional.
- Comparison of feature completeness and migration workflow against actively maintained alternatives like Alembic or South.
Package facts
| License | Apache permissive |
| Python support | Not specified |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 3 packagessqlparsetabulateimportlib-metadata |
| Maintenance | Dormant 734 days since the last release |
| First released | |
| Downloads | 734,697 / month, #5,197 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableEnvironment :: ConsoleIntended Audience :: DevelopersLicense :: OSI Approved :: Apache Software LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3Topic :: DatabaseTopic :: Database :: Front-EndsTopic :: Software DevelopmentTopic :: Software Development :: Version Control |
Evidence: yoyo_migrations-9.0.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “apply and rollback migrations”
- yoyo-migrationsYoyo-migrations is a database schema migration tool that lets you…
- django-test-migrationsTests Django schema and data migrations, including forward/backward…
- Flask-MigrateFlask-Migrate handles SQLAlchemy database migrations for Flask…
Give your agent the search over MCP, or paste the wish link into any chat.
More Software Development packages
Provides backported and experimental type hints for Python 3.9+, allowing use of newer typing features on older Python versions and enabling early experimentation with type system PEPs before they enter the standard library.
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
FastAPI is a Python web framework for building REST APIs using type hints, with automatic request validation, serialization, and interactive API documentation.
Provides a way to document function parameters, class attributes, return types, and variables inline using Python's `Annotated` type hint syntax instead of traditional docstrings.
Typer builds command-line applications from Python functions using type hints, automatically generating help text, argument parsing, and shell completion.
Install it if you are building CLIs in Python.
Distlib provides low-level packaging utilities for building, distributing, and managing Python software—including metadata handling, version specifiers, wheel support, script installation, and dependency resolution.
See also peewee-migrate · schemachange · django-syzygy · alembic · migra · Flask-Migrate · django-pg-zero-downtime-migrations · mongodb-migrations · atlas-provider-sqlalchemy · sqlalchemy-migrate