ddl-diff
FunSQL.jl
ddl-diff | FunSQL.jl | |
---|---|---|
1 | 4 | |
2 | 138 | |
- | 2.2% | |
10.0 | 8.0 | |
over 6 years ago | 7 days ago | |
Scala | Julia | |
GNU General Public License v3.0 only | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
ddl-diff
-
PRQL a simple, powerful, pipelined SQL replacement
So, after digging about in the docs, I found the Best Practices[0] page which lays out what you describe. I was disappointed to find it is just using idempotent creation statements for procedures and views and putting them all in files that are re-run on each migration step-along with each new roll forward migration-so that new versions of these logic objects replace any old ones. This is not exactly something that liquidbase provides, should be easily replicatable, and I was hoping it'd do diffs to provide similar experience on tables as well.
After some web searching, I came across a project[1] that's trying to do what I describe but it appears to be dead. I'm surprised that migration tools (that I looked through) don't already support such a basic approach that I suspect I'm missing something obvious. Some fundamental block in how SQL works or maybe it doesn't work that well in practice for, in concept, it sounds easy to script using what they call a shadow db and `pg_diff`.
[0]: https://docs.liquibase.com/concepts/bestpractices.html
[1]: https://github.com/cbowdon/ddl-diff
FunSQL.jl
-
PRQL a simple, powerful, pipelined SQL replacement
You might enjoy the FunSQL library; SQL verbs are represented using regular Julia objects and you pipeline them together to build bigger queries. A key difference to other SQL builders is that you assemble a tree of "tabular operations" instead of a SQL syntax tree.
https://github.com/MechanicalRabbit/FunSQL.jl
- FunSQL.jl – Julia library for compositional construction of SQL queries
-
PRQL is a modern language for transforming data — a simpler and more powerful SQL
The developers of HTSQL are working now on FunSQL – https://github.com/MechanicalRabbit/FunSQL.jl
-
SQL: The difference between WHERE and HAVING
There is no HAVING and the you can use any tabular operators in any order. Aggregates are also separated from grouping and can be used in any context after Group is applied.
[0] https://github.com/MechanicalRabbit/FunSQL.jl
What are some alternatives?
cargo-semver-checks - Scan your Rust crate for semver violations.
TablaM - The practical relational programing language for data-oriented applications
prql-query - Query and transform data with PRQL
DifferentialEquations.jl - Multi-language suite for high-performance solvers of differential equations and scientific machine learning (SciML) components. Ordinary differential equations (ODEs), stochastic differential equations (SDEs), delay differential equations (DDEs), differential-algebraic equations (DAEs), and more in Julia.
normconf2022
tresql - Shorthand SQL/JDBC wrapper language, providing nested results as JSON and more
prql - PRQL is a modern language for transforming data — a simple, powerful, pipelined SQL replacement
liquibase - Main Liquibase Source
Pluto.jl - 🎈 Simple reactive notebooks for Julia
trustfall - A query engine for any combination of data sources. Query your files and APIs as if they were databases!
SQLToy - Learn SQL by creating a SQL database in JavaScript