postgres_migrator
postgres_lsp
postgres_migrator | postgres_lsp | |
---|---|---|
7 | 6 | |
82 | 3,135 | |
- | 0.7% | |
5.1 | 9.2 | |
4 months ago | 4 days ago | |
Rust | Rust | |
MIT License | MIT License |
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
-
We built our customer data warehouse all on Postgres
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
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
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?
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
- migrator: automatically generate postgres migrations from a declarative raw sql schema, written in Rust
- Migrator: Automatically generate Postgres migrations from declarative SQL schema
postgres_lsp
-
We built our customer data warehouse all on Postgres
Thank you for turning me on top Cornucopia, it looks awesome. I've used the very similar aiosql in Python, but I hadn't realized there was a Rust analog.
To tell the truth I've been waiting for postgres_lsp to mature before trying it out, but based on this example [1] I think it does support multiple queries.
Since it uses a parser extracted from Postgres, the nonstandard syntax would probably trip it up, but there's probably a way to fix that.
[1] https://github.com/supabase/postgres_lsp/blob/main/example/f...
-
compile-time SQL validations and type generation in TypeScript & Node
Cool. How does this compare to SafeQL, PgTyped, and Postgres language server ?
-
Supabase Local Dev: migrations, branching, and observability
While code editors have great support for most programming languages, SQL support is underwhelming. We want to make Postgres as simple as Python. Our recently announced Postgres Language Server takes us a step in that direction - eventually it will provide first-class support for Postgres in your favorite code editor including Linting, Syntax Highlighting, Migrations Parsing, SQL Auto-complete, and Intellisense.
-
Hugging Face is now supported in Supabase
Postgres Language Server
- Show HN: Postgres Language Server
What are some alternatives?
refinery - Powerful SQL migration toolkit for Rust.
pspg - Unix pager (with very rich functionality) designed for work with tables. Designed for PostgreSQL, but MySQL is supported too. Works well with pgcli too. Can be used as CSV or TSV viewer too. It supports searching, selecting rows, columns, or block and export selected area to clipboard.
pgroll - PostgreSQL zero-downtime migrations made easy
edge-runtime - A server based on Deno runtime, capable of running JavaScript, TypeScript, and WASM services.
migra - Like diff but for PostgreSQL schemas
vecs - Postgres/pgvector Python Client
quantumdb - Zero-downtime schema evolution for PostgreSQL
basejump - Teams, personal accounts, permissions and billing for your Supabase app
safeql - Composable / async / functional / type-safe / parallel-pipelined queries and relations without SQL injection or N+1s.
declarative-schemas
tusker - PostgreSQL migration management tool
supabase-test-helpers - Test helpers for pgTAP and Supabase