Skip to content

Development

Terminal window
git clone https://github.com/helgesverre/sql-splitter
cd sql-splitter
cargo build
Terminal window
cargo run -- split test.sql -o output/
Terminal window
cargo build --release

The binary will be at target/release/sql-splitter.

Terminal window
RUSTFLAGS="-C target-cpu=native" cargo build --release
  • Directorysql-splitter/
    • Directorysrc/
      • main.rs Entry point
      • Directorycmd/ CLI commands
        • split.rs
        • merge.rs
        • analyze.rs
      • Directoryparser/ SQL parser
      • Directorysplitter/ Split logic
      • Directorymerger/ Merge logic
      • Directoryanalyzer/ Analysis logic
      • Directoryconvert/ Dialect conversion
      • Directoryvalidate/ Validation logic
      • Directorysample/ Sampling logic
      • Directoryshard/ Sharding logic
      • Directorydiffer/ Diff logic
      • Directoryredactor/ Redaction logic
      • Directorygraph/ Graph/ERD logic
      • Directoryduckdb/ DuckDB integration
      • Directorywriter/ Output writers
    • Directorytests/
      • Directoryfixtures/ Test SQL files
      • *.rs Test modules
    • Directoryman/ Man pages
    • Directorywebsite/ Documentation site
    • Cargo.toml
  • Use cargo fmt before committing
  • Run cargo clippy for lints
  • Follow Rust idioms
Terminal window
make build # Build release
make test # Run tests
make install # Install binary + completions + man pages
make clean # Clean build artifacts