Jump to: Menu

Django: check for uncommited migrations on deploy


Small check to integrate into your fabric deployment method. It detects uncommited migrations and prompt user to continue or abort the deployment.

1
2
3
4
5
6
7
8
9
10
11
12
from fabric.api import local

def check_migrations():
    """Return true if no migration file left uncommited"""
    mig = local('./manage.py makemigrations', capture=True)
    if mig.split()[0] != 'No':  # No changes detected
        local('git clean -f')   # Cleanup generated migrations
        print(mig)
        ok = raw_input('\nUncommited migration(s). Continue? [y/n]')
        if ok.lower() != 'y':
            return False
    return True