Skip to content

gang-thumb/iron-diff

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

iron-diff

Simple Rust CLI for row diff between different databases.

Goal

  • 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)

Current limits

  • Hash range split supports only one numeric primary key
  • The joindiff algorithm is not implemented yet
  • You can choose compare columns with --columns and --update-column

Example

cargo run -- \
  --source "postgres://postgres:password@localhost:5432/testdb" users \
  --target "mysql://root:password@localhost:3306/testdb" users \
  -k id \
  -c name

Test

  • Quick regression check: cargo test
  • Manual e2e check: tests/cli_e2e.rs + docs/local_testing.md

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors