ChronoVoyage
Chronovoyage is a simple database migration framework.
Table of Contents
Simple Usage
To use MariaDB version, you need the MariaDB development package (libmariadb-dev in apt).
pip install chronovoyage[mariadb]
Usage
First, you should name and initialize a directory.
chronovoyage init my-project --vendor mariadb
cd my-project
Edit config.json.
{
"$schema": "https://raw.githubusercontent.com/fairy-select/chronovoyage/main/schema/config.schema.json",
"vendor": "mariadb",
"connection_info": {
"host": "127.0.0.1",
"port": 3306,
"user": "mariadb",
"password": "password",
"database": "test"
}
}
Create migration template directory.
chronovoyage add ddl initial_migration
If you create DML,
chronovoyage add dml second_migration
Write up sql to go.sql, and rollback sql to return.sql.
Then, migrate.
chronovoyage migrate
Contributing
Please read the following docs before you contribute to this repo:
Security Policy
We support the latest version based on GitHub's vulnerability alerts.
License
chronovoyage is distributed under the terms of the MIT license.
Roadmap
- Support for
- Python 3.8 or later
- Docker
- Database support
- MariaDB
- MySQL
- PostgreSQL
- Migration file support
- SQL (.sql)
- Shell script (.sh)
- Commands
newinit- Create migration directory and config file
generateadd- Create migration files from template
- migrate
- To latest
- To specific version
- From the beginning
- From the middle
- --dry-run
- Show executing SQL
- Detect ddl or dml
statuscurrent- Show current migration status
- rollback
- To version
- test
- Check if every "migrate -> rollback" operation means do nothing for schema
- If dml, the operation means do nothing for data (including autoincrement num)
- Other
- CLI logging
- Documentation
Release files for chronovoyage 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| chronovoyage-0.3.0.tar.gz | 626.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| chronovoyage-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 654.9 kB
Release files / chronovoyage-0.3.0.tar.gz
| Download URL | chronovoyage-0.3.0.tar.gz |
|---|---|
| Size | 626.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cc09a991fa54a02dc495f1751bae478f30c36cfb6e94e5b079bd7aca49c011bc
|
|
BLAKE2b-256 checksum How to use checksums |
5e41ba63270e799e56a41eaf8add6f23564d4e545509edb9c1a9d968e3624a5b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 14, 2026.
Transparency logRelease files / chronovoyage-0.3.0-py3-none-any.whl
| Download URL | chronovoyage-0.3.0-py3-none-any.whl |
|---|---|
| Size | 28.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9606dcb71caee9387d8c8a670dabf7567f968be7dfb142045779cc79a720a7a6
|
|
BLAKE2b-256 checksum How to use checksums |
4a96868551eef87223f6e19940b5feab7c8dc671704cf540cca6e3f1ea71319c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 14, 2026.
Transparency log