Prevent South from running concurrently
Python
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
locking_south
.gitignore
MANIFEST.in
Makefile
README.md
setup.py

README.md

Let's prevent South from running two migrations at the same time!

The problem

A common situation in continuous integration/deployment scenarios is having production code pushed to a number of servers at once without any type of "master" controller. All servers are treated equally. In this case when mixed with South, migrations can get crazy. Only one migration instance can run at one time. This lets you do that.

Installation

$ pip install django-locking-south

Add locking_south to your INSTALLED_APPS:

INSTALLED_APPS = (
    #...
    'south',
    'locking_south',
)

Cache must be configured inside your Django app and be accessible by all servers for locking to actually work.

Usage

$ ./manage.py safe_migrate

Note: All options and args for South are passed through and valid for safe_migrate.