Hacker News new | ask | show | jobs
by brycelarkin 827 days ago
Postgraphile. Postgres + graphql. It really solves all the negative aspects of graphql. Also, incredibly performant. Their v5 release is also a pretty interesting piece of tech.

https://postgraphile.org/

5 comments

I played with this a bit years ago when it was still called PostgraphQL. My biggest issue with it was that there didn't seem to be a recommended (or even suggested) version control method for things like functions. Using a standard migration tool to update functions seems like hell, so I gave up on using it.

Looking through the docs, I still see no mention of version control or even migrations at all. Is this something that has been solved?

It’d be like any other database schema change. We commit all schema migrations to git and have cicd run them.
I didn't see a v5 tag in order to know, and I have no idea what "utils/graphile" does for the project, but one will want to ensure they are aware of its licensing scheme https://github.com/graphile/crystal/blob/db8894c74eb0ec3fe96...
Its an optional command line utility that you may use with PostGraphile which does things like printing out your configuration in a pretty format and using TypeScript to figure out what options are available to you based on the plugins you are using. It is 100% non-essential because all the options are documented in each of the plugins (and also you can use TypeScript auto-complete in your editor), and you can just console.dir() your configuration. You can read about it here: https://postgraphile.org/postgraphile/next/config#viewing-th...
Graphile worker is also awesome. Wish celery was as good -- I've been thinking of implementing a compatible worker in Python
Interesting, This project looks very versatile, Can experiment with quick a backend API on Postgres.
It’s one of the few big projects that still feels “open source” as opposed to corporate run open source.

I think Netflix is a big user / sponsor of the project.

Is there any alternative that works with Python?