top | item 43188028

(no title)

clarkbw | 1 year ago

(neon employee)

there isn't something like Vitess for Postgres yet but there needs to be. Migrations are painful in general and they become very painful at scale. i haven't used gel yet, i know it manages migrations but i don't know to what extent. most of my experience is with prisma, drizzle, and atlas.

neon is working on some plans to solve migrations at scale. we think our custom storage layer will allow us to optimize certain paths, like setting a default value in a new column for a table with millions of rows. this alter command can take a lock on a table for hours. but ultimately we need better tooling.

ideally there is a client and a hosted service such that you can use the client to run migrations on your own from the CLI and integrate it into your dev workflow. the hosted service version allows you to push up your schema change from the client to an API. from there you can manage the migration rollout from an operational dashboard that helps you tune resourcing.

when i was at github we used vitess to roll out a migration that took 3 weeks to complete. a long time to wait but that's a better tradeoff compared to a migration that takes down production for 6 hours.

discuss

order

gulcin|1 year ago

(xata employee)

I totally agree with schema migrations being painful, have you seen the open-source tool we developed to tackle this problem? It is called pgroll: https://github.com/xataio/pgroll

Any feedback is appreciated!

dvtkrlbs|1 year ago

Postgres definitely needs github like tooling that does always online migrations. iirc githhub's migration tool was open source right?

Edit: yes it was https://github.com/github/gh-ost

dvtkrlbs|1 year ago

And someone can correct me if I am wrong but really similar migrations are possible with Postgres I remember reading an article about some company doing a similar migration strategy using postgres publications. We just need better tooling.