Simple Rust CLI for row diff between different databases.
- A CLI that does not depend on an Oracle thick client or a SQLAlchemy version mix
- Diff data across Redshift/Postgres, Oracle, and MySQL
- Split data by one numeric primary key range, compare row hashes in each segment, and narrow down only the changed ranges
Current work is focused on:
- Using
oracle-thin(pure Rust) as the default Oracle path - Keeping the diff core separate from database drivers
- Building checksum SQL for each dialect with standard range filters (
>=,<,ORDER BY)
- Hash range split supports only one numeric primary key
- The
joindiffalgorithm is not implemented yet - You can choose compare columns with
--columnsand--update-column
cargo run -- \
--source "postgres://postgres:password@localhost:5432/testdb" users \
--target "mysql://root:password@localhost:3306/testdb" users \
-k id \
-c name- Quick regression check:
cargo test - Manual e2e check:
tests/cli_e2e.rs+docs/local_testing.md