migman 0.9.7

There is a newer version of this package available.
See the version list below for details.
dotnet tool install --global migman --version 0.9.7
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local migman --version 0.9.7
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=migman&version=0.9.7
                    
nuke :add-package migman --version 0.9.7
                    

Migman

Migman is a CLI tool for migrating and verifying MariaDB/MySQL tables using dump/load workflows and checksums.

Install (global tool)

dotnet tool install --global migman

Update

dotnet tool update --global migman

Usage

migman --help
migman run --dumper
migman run --loader
migman run --checksum
migman run --sync
migman init --docker
migman init --sample
migman init --docker --sample --force

Init options

  • --docker: create docker-compose.yml for MariaDB/MySQL.
  • --sample: create sample SQL scripts and connection helpers.

Configuration

migman.yml example:

source:
  type: mariadb
  host: localhost
  port: 3307
  user: root
  password: secret
  database: source_db
target:
  type: mysql
  host: localhost
  port: 3308
  user: root
  password: secret
  database: target_db
migration_mode: dump
dump_path: ./dumps
log_path: ./migman.log
log_level: info
threads: 4
tables:
  - name: sample_pk_split
    target_name: sample_pk_split_copy
    compress: false
    drop_table: true
    chunking:
      type: pk_split
      key: id
      size: 20
  - name: sample_pk_offset
    target_name: sample_pk_offset_copy
    compress: false
    drop_table: true
    chunking:
      type: pk_offset
      keys:
        - order_id
        - line_id
      order_by:
        - column: order_id
          direction: asc
        - column: line_id
          direction: asc
      size: 20

migration_mode values: dump or sync (sync compares checksums and inserts/updates target rows and deletes target rows missing in source when mismatched). Use migman run --sync when migration_mode: sync. If the target table is missing, sync creates it from the source schema. tables[].target_name overrides the target table name (defaults to tables[].name). drop_table: true is only applied in loader mode; sync mode rejects it.

Chunking

Migman supports two chunking strategies for splitting large tables.

pk_split

Splits a table by a single numeric primary key range.

Required fields:

  • chunking.type: pk_split
  • chunking.key: primary key column
  • chunking.size: rows per chunk Optional fields:
  • chunking.where: filter condition applied to min/max range and chunk queries

Example:

chunking:
  type: pk_split
  key: id
  where: status = 'active'
  size: 20000

pk_offset

Splits a table by an ordered composite key (or single key) using keyset pagination.

Required fields:

  • chunking.type: pk_offset
  • chunking.keys: ordered list of key columns
  • chunking.size: rows per chunk

Optional fields:

  • chunking.order_by: must match chunking.keys order and only asc is supported

Example:

chunking:
  type: pk_offset
  keys:
    - order_id
    - line_id
  order_by:
    - column: order_id
      direction: asc
    - column: line_id
      direction: asc
  size: 20000

Logging

log_level supports: error, warning, info, debug, trace.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
1.0.3 151 2/6/2026
1.0.2 123 2/6/2026
1.0.1 140 2/5/2026
0.9.9 126 1/26/2026
0.9.8 119 1/25/2026
0.9.7 122 1/25/2026
0.9.6 147 1/25/2026
0.9.5 117 1/25/2026
0.9.4 128 1/25/2026
0.9.3 134 1/25/2026
0.9.1 120 1/25/2026
0.9.0 122 1/25/2026