Skip to main content

pyignite-migrate

Database migration tool for Apache Ignite.

Installation

pip install pyignite-migrate

or with uv:

uv add pyignite-migrate

Quick Start

1. Initialize migration environment

pyignite-migrate init

This creates:

  • pyignite_migrate.ini — configuration file
  • migrations/ — directory with env.py and versions/

2. Configure connection

Edit pyignite_migrate.ini:

[pyignite_migrate]
hosts = 127.0.0.1:10800
script_location = migrations
schema = PUBLIC

3. Create a migration

pyignite-migrate revision -m "create users table"

Edit the generated file in migrations/versions/:

from pyignite_migrate.operations import op

revision = '0001'
down_revision = None
description = 'create users table'


def upgrade():
    op.execute_sql("""
        CREATE TABLE users (
            id INT,
            name VARCHAR(100),
            email VARCHAR(255),
            PRIMARY KEY (id)
        )
    """)
    op.execute_sql("CREATE INDEX idx_users_email ON users (email)")


def downgrade():
    op.execute_sql("DROP INDEX IF EXISTS idx_users_email")
    op.execute_sql("DROP TABLE IF EXISTS users")

Revision IDs are generated as zero-padded sequential numbers: 0001, 0002, 0003, ...

4. Apply migrations

pyignite-migrate upgrade head

5. Rollback

pyignite-migrate downgrade -1    # one step back
pyignite-migrate downgrade base  # revert all

CLI Commands

Command Description
init Initialize migration environment
revision -m "msg" Create a new migration
upgrade [head|rev_id] Apply migrations
downgrade <base|-N|rev_id> Revert migrations
current Show current revision
history Show migration history
heads Show head revision(s)
stamp <rev_id|base> Set version without running migrations

Available Operations

from pyignite_migrate.operations import op

# SQL
op.execute_sql(query, query_args=None, schema=None)

# Cache management
op.create_cache(name, config=None)
op.destroy_cache(name)

Configuration

pyignite_migrate.ini:

[pyignite_migrate]
# Comma-separated host:port pairs
hosts = 127.0.0.1:10800

# Path to migration scripts (relative to this file)
script_location = migrations

# SQL schema
schema = PUBLIC

# Version tracking table name
version_table = __pyignite_migrate_version

Requirements

  • Python >= 3.10
  • CI checks run on Python 3.10, 3.11, 3.12, 3.13, and 3.14
  • Apache Ignite with thin client protocol

Development

uv sync
docker compose up -d --wait ignite
uv run pytest tests/ -v
uv run ruff check .
uv run ruff format --check .
uv run mypy pyignite_migrate/
docker compose down

Integration tests use a real Ignite node. By default they connect to 127.0.0.1:10800. Override with PYIGNITE_TEST_HOST and PYIGNITE_TEST_PORT.

Release

See RELEASING.md for build and PyPI publishing steps.

License

Apache License 2.0

Metadata

Release files for pyignite-migrate 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyignite-migrate 0.1.3
File Size Uploaded
pyignite_migrate-0.1.3.tar.gz 16.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pyignite-migrate 0.1.3
File Interpreter ABI Platform
pyignite_migrate-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 34.2 kB

Release files / pyignite_migrate-0.1.3.tar.gz

Download URL pyignite_migrate-0.1.3.tar.gz
Size 16.1 kB
Tags Source
SHA-256 checksum
How to use checksums
8f6308a0c97ece67fb475acd1b8a193cbb172d8e52345fc563b56e7cbd266e52
BLAKE2b-256 checksum
How to use checksums
48f57c7337892fff9b850718488a5106db3f7914a9cfb55be8e9bc85f92f67cf
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 11, 2026.

Transparency log

Release files / pyignite_migrate-0.1.3-py3-none-any.whl

Download URL pyignite_migrate-0.1.3-py3-none-any.whl
Size 18.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
198c0fc7a5074ce2a11b768cf07d9ece6f8020e52114d24c72c9bdedc020a957
BLAKE2b-256 checksum
How to use checksums
b78ad009ec54d051944051811fcb996512080a775ab90dc1831391ad37e07033
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 11, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page