Remix.run Logo
Onavo 15 days ago

I mean they just reinvented Prisma and Django

evanelias 15 days ago | parent [-]

Yes, although the article isn't claiming to have invented declarative schema management. They're just saying it is now available as a feature in Supabase. (Personally I think that's great!)

Regarding prior art: Django migrations are indeed declarative, and were very early in this space. But they're tied to Python model definitions in the ORM, which is a bit more of a special-case than the native SQL CREATE based approach described here.

As for Prisma Migrate, they directly copied several innovations from my tool Skeema [1] which has been available since 2016, so they can be equally accused of "reinventing" things :)

Not that I invented pure-SQL declarative schema management either, by any stretch. I was largely inspired by the workflow at Facebook, who adopted declarative table management company-wide back in ~2012. FB found that having a declarative reconciliation loop is an operational necessity with a massively sharded system, given some hardware just dies every day. And centralized SQL-based schema management is advantageous when applications are written in many different programming languages.

[1] https://github.com/skeema/skeema

Onavo 14 days ago | parent [-]

Any plans to add Postgres and SQLite support?

evanelias 14 days ago | parent [-]

Skeema will always be specific to MySQL/MariaDB, but I hope to eventually release a separate tool which is more generic and modular. That's still a long while away though.

There are some existing declarative tools for Postgres and SQLite though, see https://news.ycombinator.com/item?id=43576450