postgres_migrator VS pgpkg

Compare postgres_migrator vs pgpkg and see what are their differences.

postgres_migrator

A postgres migration generator and runner that uses raw declarative sql. (by blainehansen)

pgpkg

Simplify Postgresql stored procedure development. (by pgpkg)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
postgres_migrator pgpkg
7 3
82 18
- -
5.1 6.6
4 months ago about 1 month ago
Rust Go
MIT License MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

postgres_migrator

Posts with mentions or reviews of postgres_migrator. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-02-02.
  • We built our customer data warehouse all on Postgres
    16 projects | news.ycombinator.com | 2 Feb 2024
    Thanks! Yeah definitely agree that building out declarative table management for Postgres would be a major effort. A few open source projects I've seen in that area include:

    https://github.com/sqldef/sqldef (Go)

    https://github.com/bikeshedder/tusker (Python but being ported to Rust)

    https://github.com/tyrchen/renovate (Rust)

    https://github.com/blainehansen/postgres_migrator (Rust)

    Some of these are based on parsing SQL, and others are based on running the CREATEs in a temporary location and introspecting the result.

    The schema export side can be especially tricky for Postgres, since it lacks a built-in equivalent to MySQL's SHOW CREATE TABLE. So most of these declarative pg tools shell out to pg_dump, or require the user to do so. But sqldef actually implements CREATE TABLE dumping in pure Golang if I recall correctly, which is pretty cool.

    There's also the question of implementing the table diff logic from scratch, vs shelling out to another tool or using a library. For the latter path, there's a nice blog post from Supabase about how they evaluated the various options: https://supabase.com/blog/supabase-cli#choosing-the-best-dif...

  • Pgroll: zero-downtime, undoable, schema migrations for Postgres
    15 projects | news.ycombinator.com | 3 Oct 2023
    Forr postgres, how does the schema diffing aspect compare to migra?

    https://github.com/djrobstep/migra

    I'm asking because, although migra is excellent and there are multiple migrations tools based on it (at least https://github.com/bikeshedder/tusker and https://github.com/blainehansen/postgres_migrator), issues are piling up but development seem to be slowing down

  • Diesel 2.1
    5 projects | /r/rust | 26 May 2023
    Is this similar to migra? There's a tool written in Rust that calls it, postgres_migrator (there's also tusker)
  • Ask HN: ORM or Native SQL?
    10 projects | news.ycombinator.com | 6 Jan 2023
    The best solution I've ever seen is this Rust library https://github.com/cornucopia-rs/cornucopia

    You write plain SQL for you schema (just a schema.sql is enough) and plain SQL functions for your queries. Then it generates Rust types and Rust functions from from that. If you don't use Rust, maybe there's a library like that for your favorite language.

    Optionally, pair it with https://github.com/bikeshedder/tusker or https://github.com/blainehansen/postgres_migrator (both are based off https://github.com/djrobstep/migra) to generate migrations by diffing your schema.sql files, and https://github.com/rust-db/refinery to perform those migrations.

    Now, if you have simple crud needs, you should probably use https://postgrest.org/en/stable/ and not an ORM. There are packages like https://www.npmjs.com/package/@supabase/postgrest-js (for JS / typescript) and probably for other languages too.

    If you insist on an ORM, the best of the bunch is prisma https://www.prisma.io/ - outside of the typescript/javascript ecosystem it has ports for some other languages (with varying degrees of completion), the one I know about is the Rust one https://prisma.brendonovich.dev/introduction

  • migrator: automatically generate postgres migrations from a declarative raw sql schema
    1 project | /r/PostgreSQL | 6 Mar 2022
  • migrator: automatically generate postgres migrations from a declarative raw sql schema, written in Rust
    1 project | /r/rust | 6 Mar 2022
  • Migrator: Automatically generate Postgres migrations from declarative SQL schema
    1 project | news.ycombinator.com | 6 Mar 2022

pgpkg

Posts with mentions or reviews of pgpkg. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-02-17.
  • My Notes on Gitlab's Postgres Schema Design (2022)
    3 projects | news.ycombinator.com | 17 Feb 2024
    You are absolutely correct; my previous business ended up ejecting almost all database logic from Java ORMs, and moved almost everything to SQL and stored procedures. Doing so resulted in a significant performance and productivity increase, relative to all the layers of nonsense we used to jump through.

    One of the difficulties of doing this was that the tooling isn’t great. We had to write our own tools to make it work, but the benefits of going back to SQL were more than worth it.

    (Many years later I made an open source version of that tooling, https://github.com/pgpkg/pgpkg)

  • We built our customer data warehouse all on Postgres
    16 projects | news.ycombinator.com | 2 Feb 2024
    I wrote something [0]. It lets you write plpgsql functions, views, triggers and casts in a way that can be re-created without migration scripts. It’s a complete work in progress, not production ready, probably has bugs, but I use it daily. It lets me use Postgres as my main development environment.

    It also managea migrations for tables, types, and other stuff, if fully atomic, and lets you write unit tests in SQL (which run inside save points so they don’t affect the database and can run during production deployments). It’s sort of my Swiss Army knife of plpgsql development.

    [0] https://github.com/pgpkg/pgpkg

  • Ask HN: What web frameworks do you use?
    3 projects | news.ycombinator.com | 11 Sep 2023
    I use static Svelte(Kit) + TypeScript + Tailwind on the front end, Go and Postgraphile in the middle, and PostgreSQL functions on the backend.

    I did write my own PostgreSQL migration tool though, to make it easier to write SQL functions in my IDE: https://github.com/pgpkg/pgpkg

What are some alternatives?

When comparing postgres_migrator and pgpkg you can also consider the following projects:

refinery - Powerful SQL migration toolkit for Rust.

revenut-app - A web + mobile app (PWA) with Stripe integration for forecasting SaaS revenue

pgroll - PostgreSQL zero-downtime migrations made easy

migra - Like diff but for PostgreSQL schemas

quantumdb - Zero-downtime schema evolution for PostgreSQL

safeql - Composable / async / functional / type-safe / parallel-pipelined queries and relations without SQL injection or N+1s.

tusker - PostgreSQL migration management tool

cornucopia - Generate type-checked Rust from your PostgreSQL.

reshape - An easy-to-use, zero-downtime schema migration tool for Postgres

Prisma - Next-generation ORM for Node.js & TypeScript | PostgreSQL, MySQL, MariaDB, SQL Server, SQLite, MongoDB and CockroachDB

languages-that-compile-to-sql - A list of languages that compile to SQL

diesel - A safe, extensible ORM and Query Builder for Rust