https://github.com/juneHQ/houseplant
Database Migrations for ClickHouse
https://github.com/juneHQ/houseplant
Last synced: about 2 months ago
JSON representation
Database Migrations for ClickHouse
- Host: GitHub
- URL: https://github.com/juneHQ/houseplant
- Owner: juneHQ
- License: mit
- Created: 2024-11-20T03:21:14.000Z (5 months ago)
- Default Branch: master
- Last Pushed: 2025-01-24T17:47:37.000Z (3 months ago)
- Last Synced: 2025-01-24T18:05:38.806Z (3 months ago)
- Language: Python
- Homepage: https://houseplant.readthedocs.io
- Size: 406 KB
- Stars: 48
- Watchers: 1
- Forks: 4
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: HISTORY.rst
- Contributing: CONTRIBUTING.rst
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.rst
- Authors: AUTHORS.rst
Awesome Lists containing this project
- awesome-clickhouse - juneHQ/houseplant - Houseplant is a CLI tool for managing database migrations in ClickHouse. (UIs / CLI)
README
![]()
# Houseplant: Database Migrations for ClickHouse
[](https://pypi.python.org/pypi/houseplant)
[](https://pypi.org/project/houseplant/)
[](https://pypi.org/project/houseplant/)**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## Installation
You can install Houseplant using pip:
$ pip install houseplant## Configuration
Houseplant uses the following environment variables to connect to your ClickHouse instance:
- `HOUSEPLANT_ENV`: The current environment
- `CLICKHOUSE_HOST`: Host address of your ClickHouse server (default: "localhost")
- `CLICKHOUSE_PORT`: Port number for ClickHouse (default: 9000)
- `CLICKHOUSE_DB`: Database name (default: "development")
- `CLICKHOUSE_USER`: Username for authentication (default: "default")
- `CLICKHOUSE_PASSWORD`: Password for authentication (default: "")## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.