Migrations tool for Python 3.5+
Project description
Mongrations
A migrations tool for Python 3.6+. Mongrations started as a MongoDB migrations tool but has introduced MySQL & Postgres as compatible servers 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.
Up Next
Unit Tests.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for mongrations-0.0.6-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 55d87e6778c2f7e0889ab74dbd3e0e046361fd8a07313446674633eef877a09e |
|
MD5 | b28a93943c91373e31a5b9f7f9fcd7c0 |
|
BLAKE2b-256 | 74ef6ead5e2c9af6a6a8cb94010b20348a6e300d2d1afc66c163ac04e40ee18d |