Like diff but for PostgreSQL schemas
Alternatives To Migra
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Prisma31,8464423 hours ago4,993September 24, 20222,920apache-2.0TypeScript
Next-generation ORM for Node.js & TypeScript | PostgreSQL, MySQL, MariaDB, SQL Server, SQLite, MongoDB and CockroachDB
Graphql Engine29,83715 hours ago17June 22, 20222,129apache-2.0TypeScript
Blazing fast, instant realtime GraphQL APIs on your DB with fine grained access control, also trigger webhooks on database events.
Postgraphile11,95576996 days ago156May 25, 202267mitTypeScript
Execute one command (or mount one Node.js middleware) and get an instant high-performance GraphQL API for your PostgreSQL database!
Dbal9,08147,9463,9335 hours ago99April 05, 2022198mitPHP
Doctrine Database Abstraction Layer
Records6,956150282 months ago11February 21, 201964iscPython
SQL for Humans™
Sqlboiler5,8179712 hours ago95August 28, 202286bsd-3-clauseGo
Generate a Go ORM tailored to your database schema.
Goose3,95465994 days ago46August 29, 202257otherGo
A database migration tool. Supports SQL migrations and Go functions.
Dbmate3,43217 days ago27March 25, 202216mitGo
:rocket: A lightweight, framework-agnostic database migration tool.
Xo3,3542914 days ago2April 16, 202142mitGo
Command line tool to generate idiomatic Go code for SQL databases supporting PostgreSQL, MySQL, SQLite, Oracle, and Microsoft SQL Server
Scenic3,18211411a month ago18February 13, 202223mitRuby
Versioned database views for Rails
Alternatives To Migra
Select To Compare

Alternative Project Comparisons

migra: Like diff but for Postgres schemas

  • compare schemas

  • autogenerate migration scripts

  • autosync your development database from your application models

  • make your schema changes testable, robust, and (mostly) automatic

migra is a schema diff tool for PostgreSQL, written in Python. Use it in your python scripts, or from the command line like this:

$ migra postgresql:///a postgresql:///b
alter table "public"."products" add column newcolumn text;

alter table "public"."products" add constraint "x" CHECK ((price > (0)::numeric));

migra magically figures out all the statements required to get from A to B.

Most features of PostgreSQL are supported.

Migra supports PostgreSQL >= 9 only. Known issues exist with earlier versions. More recent versions are more comprehensively tested. Development resources are limited, and feature support rather than backwards compatibility is prioritised.


Documentation is at databaseci.com/docs/migra.

Folks, schemas are good

Schema migrations are without doubt the most cumbersome and annoying part of working with SQL databases. So much so that some people think that schemas themselves are bad!

But schemas are actually good. Enforcing data consistency and structure is a good thing. It’s the migration tooling that is bad, because it’s harder to use than it should be. migra is an attempt to change that, and make migrations easy, safe, and reliable instead of something to dread.


Contributing is easy. Jump into the issues, find a feature or fix you'd like to work on, and get involved. Or create a new issue and suggest something completely different. If you're unsure about any aspect of the process, just ask.


Popular Schema Projects
Popular Postgresql Projects
Popular Data Formats Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Developer Tools