Houseplant: Database Migrations for ClickHouse

https://img.shields.io/pypi/v/houseplant.svg https://img.shields.io/pypi/l/houseplant.svg https://img.shields.io/pypi/pyversions/houseplant.svg

Houseplant is a CLI tool that helps you manage database migrations for ClickHouse.

Here’s how you can manage your ClickHouse migrations:

$ houseplant init
✨ Project initialized successfully!

$ houseplant generate "add events"
✨ Generated migration: ch/migrations/20240101000000_add_events.yml

$ houseplant migrate:status
Database: june_development

┏━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┓
┃ Status ┃ Migration ID   ┃ Migration Name ┃
┡━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━┩
│   up   │ 20240101000000 │ add events     │
└────────┴────────────────┴────────────────┘

$ houseplant migrate
✓ Applied migration 20241121003230_add_events.yml

$ houseplant migrate:up VERSION=20241121003230
✓ Applied migration 20241121003230_add_events.yml

$ houseplant migrate:down VERSION=20241121003230
✓ Rolled back migration 20241121003230_add_events.yml

Why Houseplant?

  • Schema Management: Houseplant automatically tracks and manages your ClickHouse schema changes, making it easy to evolve your data model over time

  • Developer Experience: Write migrations in YAML format, making them easy to read, review, and maintain

  • Environment Support: Different configurations for development, testing, and production environments

  • Rich CLI: Comes with an intuitive command-line interface for all migration operations

The User Guide

Indices and tables