Skip to main content

A simple Django app to be able to migrate back to a previous migration or to migrate back to a migration in a specific branch in a git repository or locally.

Project description

Django Migration Rollback v1.1.0

A Django package used to just make the python manage.py migrate a little easier for Django apps that commit their migrations and want a way to rollback to a previous migration without needing to check what the which one it is via python manage.py showmigrations or in the project's git repository.

Features

Able to set which branch in a git repository to rollback to using the custom command migraterollback or if you wish to just rollback to a previous migration only via migrateprevious. Note in order to use the rollback with a git repository's branch feature with git the project must have a .git file present.

Django migraterollback command

❯ python manage.py migraterollback polls feature/really-cool-branch
Attempting to go back to rollback polls to latest migration on branch feature/really-cool-branch
Operations to perform:
    Target specific migration: 0006_question5, from polls
Running migrations:
    Rendering model states...
DONE
    Unapplying polls.0007_question6...
OK

This command is used to migrate a Django app back to the migration found in a repository's branch (this will also migrate to that migration if behind).

  • An app must be specified as the first argument after the command to indicate which app you wish to rollback.
  • By default if no argument is specified after the app, the branch main will be used.

Django migrateprevious command

❯ python manage.py migrateprevious polls
Attempting to go back to rollback polls to previous migration
Operations to perform:
    Target specific migration: 0005_question4, from polls
Running migrations:
    Rendering model states...
DONE
    Unapplying polls.0006_question5...
OK

This command is used to migrate a Django app back to the previously applied migration.

  • An app must be specified as the first argument after the command to indicate which app you wish to migrate to the previously applied migration.

Installing

From PyPi

pip install django-migration-rollback

From GitHub

pip install git+ssh://git@github.com/jdboisvert/django-migration-rollback

Quick start

Add "migration_rollback" to your INSTALLED_APPS in the settings.py like this:

    INSTALLED_APPS = [
        ...
        'migration_rollback',
    ]

Development

Getting started

# install pyenv (if necessary)
brew install pyenv pyenv-virtualenv
echo """
export PYENV_VIRTUALENV_DISABLE_PROMPT=1
eval "$(pyenv init --path)"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
""" > ~/.zshrc
source ~/.zshrc

# create a virtualenv
pyenv install 3.11.0
pyenv virtualenv 3.11.0 django_migration_rollback
pyenv activate django_migration_rollback

# install dependencies
pip install -U pip
pip install -r requirements.txt -r requirements_dev.txt

Installing pre-commit hooks

pre-commit install

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

django_migration_rollback-1.1.0.tar.gz (10.4 kB view details)

Uploaded Source

Built Distribution

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

django_migration_rollback-1.1.0-py3-none-any.whl (8.6 kB view details)

Uploaded Python 3

File details

Details for the file django_migration_rollback-1.1.0.tar.gz.

File metadata

File hashes

Hashes for django_migration_rollback-1.1.0.tar.gz
Algorithm Hash digest
SHA256 66c23c567fa351e4cbf96654e3c951aac5a75255ea8b0f5f4b59fe4fc4c48b0b
MD5 db17dad6c9eaf73eb7a23a506d19166c
BLAKE2b-256 32d4fd5a1ae4eb3f7fe4f476b97fb1d933a298bef50044a0252ebfbb57f26f4a

See more details on using hashes here.

File details

Details for the file django_migration_rollback-1.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for django_migration_rollback-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e19cc6337e4e1a75562bcb6f4984ff03387f4c69cd28574852f5b17e558a6def
MD5 7a1bd8ea8913b64a7f509a3c7b317541
BLAKE2b-256 3546e1d74f5f39f12cf9db2cf1a5a4683694ab4ad822b7e7bb96bb201aae9dec

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