Skip to main content

Migratore Infra-structure

Project description

Migratore

Simple migration framework / infra-structure for SQL-based databases.

Installation

pip install migratore

Execution

HOST=${HOST} DB=${DB_NAME} USERNAME=${DB_USER} PASSWORD=${DB_PASS} migratore upgrade

Variables

  • HOST - Hostname or IP address of the database system for migration
  • PORT - TCP port to be used in the connection with the database system
  • UNIX_SOCKET - Filesystem path to the UNIX socket file to be used in connection
  • DB - Name of the database used as the migration target
  • USERNAME - Username for authentication in the database
  • PASSWORD - Password to be used for authentication in the database
  • FS - Base file system path for file migration (may depend on migration context)
  • DB_URL - The database connection URL following the format protocol://username:password@host:port/db
  • SAFE - If the migration operation should be performed in a safe manner.

Commands

  • help - Prints a help message about the CLI interface
  • version - Prints the current version of migratore
  • environ - Displays the current environment in the standard output
  • list - Lists the executed migrations on the current database
  • errors - Lists the various errors from migration of the database
  • mark [path] - Marks all pending migrations as applied using the defined directory or current
  • trace [id] - Prints the traceback for the error execution with the provided id
  • rebuild [id] - Run the partial execution of the migration with the given id
  • touch [id] - Touches a migration file updating its timestamp to the current time
  • squash [start] [end] <output> - Combines multiple migrations into a single file
  • upgrade [path] - Executes the pending migrations using the defined directory or current
  • dry_upgrade [path] - Prints the pending migrations without executing them
  • downgrade [path] - Rolls back the last applied migration using the defined directory or current
  • dry_downgrade [path] - Prints the last applied migration without rolling it back
  • skip [path] - Skips the current migration (next to be run) using the defined directory or current
  • generate [path] - Generates a new migration file into the target path

Operations

Every command that touches a migration records a row in the migratore bookkeeping table with an operation value that describes what was done. The same migration can have multiple rows over time (e.g. a Run followed later by a Rollback). The most recent row for each UUID is what determines whether the migration is currently applied.

  • Run - Normal application of a migration through upgrade. Invokes Migration.run.
  • Run Partial - Re-execution of a single migration through rebuild [id]. Invokes Migration.run_partial, useful for resuming a migration that previously failed mid-way.
  • Run Skip - Records the migration as applied through skip without executing its run body. Invokes Migration.run_skip. Handy when adopting migratore on a database that already has the target schema, or when a migration has been applied out-of-band.
  • Rollback - Explicit downgrade through downgrade, or recovery rollback automatically triggered when a run fails (when SAFE is False). Invokes Migration.rollback. The force argument distinguishes the two cases: True for an explicit downgrade, False for recovery.

A migration is considered currently applied whenever the most recent successful row for its UUID is anything other than Rollback. This means a migration that was rolled back via downgrade becomes pending again and will be re-applied by the next upgrade.

Examples

database = Migratore.get_database()
table = database.get_table("users")
table.add_column("username", type = "text")

License

Migratore is currently licensed under the Apache License, Version 2.0.

Build Automation

Build Status Coverage Status PyPi Status License

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

migratore-0.10.0.tar.gz (19.6 kB view details)

Uploaded Source

Built Distribution

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

migratore-0.10.0-py2.py3-none-any.whl (22.7 kB view details)

Uploaded Python 2Python 3

File details

Details for the file migratore-0.10.0.tar.gz.

File metadata

  • Download URL: migratore-0.10.0.tar.gz
  • Upload date:
  • Size: 19.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.10.0 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/1.0.0 urllib3/1.26.20 tqdm/4.64.1 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.5 CPython/3.6.15

File hashes

Hashes for migratore-0.10.0.tar.gz
Algorithm Hash digest
SHA256 0ec18392c15531c30b6a36174d6fb28232572abe63aece42439d38eab8c00e33
MD5 af3d335e08d6c015ffa8dfcd2e081234
BLAKE2b-256 ac849a533fcc868e656aac49b3c9b7b82367ec2b29bf9d406b9e2ed0d151c9d1

See more details on using hashes here.

File details

Details for the file migratore-0.10.0-py2.py3-none-any.whl.

File metadata

  • Download URL: migratore-0.10.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 22.7 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.10.0 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/1.0.0 urllib3/1.26.20 tqdm/4.64.1 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.5 CPython/3.6.15

File hashes

Hashes for migratore-0.10.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 16f43325bbd4bdad371bfff2bb2c8d69274c5e51a14b54fab106fa8685caff25
MD5 b93b5cdf17cce8a49df02f7df576f5c0
BLAKE2b-256 c9ca98cb0be43c9237d2d88e13aee825978a8fe7472a2fff2e54c9aa6b3c4913

See more details on using hashes here.

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