Skip to main content

Migrations tool for Python 3.5+

Project description

Mongrations

alt text A migrations tool for Python 3.6+. Mongrations started as a MongoDB migrations tool but has introduced MySQL & Postgres as compatible databases for the Mongrations tool.

Getting Started

1 . Generate a migration file

mongrations -C true --name insert-into-members

2 . Contents of the generated migration file (import and class definition are autogenerated for migration file - contents of up() and down() are user defined.)

from mongrations import Mongrations, Database
from pydotenv import load_env

load_env()
# This is a MongoDB example. Go to /examples directory
# for more examples

class Mongration(Database):
    def __init__(self):
        super(Database, self).__init__()

    def up(self):
        collection = self.db['members']
        data = {
            'accountId': 1,
            'username': 'admin',
            'email': 'admin@able.digital',
            'firstName': 'Site',
            'lastName': 'Owner'
        }
        collection.insert_one(data)

    def down(self):
        collection = self.db['members']
        collection.delete_one({'username': 'admin'})


Mongrations(Mongration, 'sync')

3 . Run migrations

mongrations -M true

Install

pip install --upgrade mongrations

or install locally

python setup.py build
sudo python setup.py install

Use

Mongrations comes with a CLI Tool as well as a class for a pythonic migration approach. PyMongo, PyMySQL & Psycopg2 are used under the hood, so follow PyMongo's, PyMySQL's, or Psycopg2's documentation for instructions on how to create your migrations. For the environment variable tool used in this application, follow this repo (its also installed with this package).

Refer to Mongrations documentation for more information.

CLI

Usage: mongrations [OPTIONS]

Options:
  -M, --migrate BOOLEAN  Run migrations
  -C, --create BOOLEAN   Create new migration
  -N, --name TEXT        Name for newly created migration
  -F, --file_path TEXT   File path for newly created migration
  -U, --undo BOOLEAN     Undo last migration
  -D, --down BOOLEAN     Revert database
  --version              Show the version and exit.
  --help                 Show this message and exit.

CLI Examples

mongrations -C true --name [migration_name]  # create new migration
mongrations -M true  # run migrations
mongrations -D true  # tear down migrations
mongrations -U true  # undo last migration

Mongrations Class

from mongrations import MongrationsCli

migrations = MongrationsCli()

migrations.create(directory='migrations', name='file_name')
migrations.migrate()
migrations.down()
migrations.undo()

Run example migration in examples/ folder

Issues

Please report all issues to repo.

Notes

You can install psycopg2 from source via setup.py develop build or refer to their repo.

Project details


Download files

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

Files for mongrations, version 0.0.7
Filename, size File type Python version Upload date Hashes
Filename, size mongrations-0.0.7-py3-none-any.whl (8.5 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size mongrations-0.0.7.tar.gz (7.8 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page