Thanks for taking the time. Small, focused pull requests are the easiest to merge.
Requires uv and Docker.
git clone https://github.com/Maksim-Burtsev/PyClickHouseMigrator.git
cd PyClickHouseMigrator
uv sync --devMost tests need a live ClickHouse:
docker compose -f docker-compose.test.yml up -d --wait
uv run pytest -vCluster tests run against a separate two-node compose file:
docker compose -f docker-compose.cluster.yml up -d --wait
uv run pytest tests/ -m cluster -vThe same three checks CI runs:
uv run ruff check .
uv run ruff format --check .
uv run mypy py_clickhouse_migrator/- Add a test for any behavior change — the test suite is the reason this tool is safe to point at a production schema.
- Keep the dependency set small.
clickandclickhouse-driverare the only runtime dependencies, and that is a feature. - Update
docs/andREADME.mdwhen you change CLI behavior, plusllms.txt/llms-full.txtif the change affects the documented surface. - Add an entry to
CHANGELOG.mdunder an "Unreleased" heading.
Open an issue with the migrator version (migrator --version), ClickHouse
version, the migration SQL if relevant, and the full command plus output.