thenonameguy
Joined 13 years ago
Joined 13 years ago
That's what I've been trying to do with: https://github.com/schemamap/schemamap
For a well-constrained Postgres schema, a deterministic SQL compiler can be built (with plenty of logic programming/constraint-solving/hypergraph-analysis) that can integrate arbitrary external systems data.
While this is NP-hard, with some clever use of embeddings and ontologies, and use of every single constraint AST within the DB to reduce the search space, this becomes a feasible problem.
For any Clojurists interested, I've packaged `pg_query`, so you can use it in your applications: https://github.com/schemamap/pg-query-clj
At the moment I'm saving up for the next development cycle, so not only PG->PG schema mappings can be solved for (JSON schema is next!). Hope this sounds interesting :)
Schemamap.io has a declarative SQL compiler and backend implemented in it, solving Postgres database syncing.
It would be even better if larger values were inspectable, as it becomes challenging to view more complex data types beyond numbers and short strings.
https://devenv.sh/ is one example that uses it to do just that.
See this related talk from NixOS 2022: https://www.youtube.com/watch?v=HZKFe4mCkr4
See: https://f1bonacc1.github.io/process-compose/health/?h=port#r...
When do you expect to add Linux support? Until then, I'm using a devenv.sh Nix-based setup (without mDNS), with something like this: https://github.com/cachix/devenv/blob/main/examples/mkcert/d...
It's a userspace process orchestrator/scheduler that works across all relevant platforms, supporting daemon processes and k8s style readiness/health checks.
In combination with nix flakes, it quickly reduced my projects docker-compose usage for easy-to-configure services.
This gave huge performance benefits for the M1 Mac folks on my team especially for CPU intensive processes thanks to native binaries.
For maximal ease of use, the remaining docker-compose containers are started/stopped as a process-compose task. Quite meta :)
Additionally, you automatically get shell completion too! https://github.com/NixOS/nixpkgs/blob/3bb54189b0c8132752fff3...
As described in the README, avoiding the 'build' part from Makefiles cut unnecessary complexity like .PHONY targets, which improves clarity. In smaller teams/companies it makes sense IMO.
https://www.reddit.com/r/Clojure/comments/5fc706/datomic_upd...
Sync data from any Postgres DB to another.
krisz [at] schemamap.io