I have been using Postgraphile (similar to this one but for GraphQL) for many months. The great thing about this way to create systems is that you don't expend time doing glue code, just in the real business logic. But a big pain is to maintain your database code, by example the version control of your functions. There are not suitable linters, and testing can't be done over postgres functions but must be done over GraphQL instead. Using things like this will save you months of development time!, Even if I agree there are some systems that will not be good idea to implement in this way.

How is Postgraphile different from Hasura?

One thing is that it's open source, not proprietary. You can run it on your own servers, modify it, etc, for free.

Another thing is it's Node, and can be used as a plug-in to your express app. This can make it easier to customize and extend over time. Eg; have parts of your schema be postgraphile and parts be custom JS.

Hasura isn't proprietary though? It's OSS software, code lives on the GH repo:

https://github.com/hasura/graphql-engine