Skip to main content

Database migration tool for Apache Ignite

Project description

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 = 'a1b2c3d4e5f6'
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")

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

Development

uv sync
uv run pytest tests/ -v

Release

See RELEASING.md for build and PyPI publishing steps.

License

Apache License 2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyignite_migrate-0.1.0.tar.gz (14.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyignite_migrate-0.1.0-py3-none-any.whl (17.8 kB view details)

Uploaded Python 3

File details

Details for the file pyignite_migrate-0.1.0.tar.gz.

File metadata

  • Download URL: pyignite_migrate-0.1.0.tar.gz
  • Upload date:
  • Size: 14.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyignite_migrate-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d6c2fcefe3b9345190a201d062c3cc4505eebee210e095f288e9ec81431fdb13
MD5 f5247da0ffbd0a83f5bc2905b40068fc
BLAKE2b-256 b48a7def5892b6f2696950c8e1262d3a4506d7c13f2c08f99bc521080867fa31

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyignite_migrate-0.1.0.tar.gz:

Publisher: publish-pypi.yml on ivan-yurin/pyignite-migrate

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyignite_migrate-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for pyignite_migrate-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c0a1e0de84ad69c953762e6e2837719292736b19cf6d55a215435053d1f1eb25
MD5 bd22a47c9e27f6ff307ebeb38bfb6dc8
BLAKE2b-256 73a276257526f4770b481fbdce4f55c842ea02e04a4e7a3ce7ef63b750964557

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyignite_migrate-0.1.0-py3-none-any.whl:

Publisher: publish-pypi.yml on ivan-yurin/pyignite-migrate

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page