Metadata-Version: 2.1
Name: django-zeromigrations
Version: 0.1.3
Summary: `zeromigrations` command for django to set migrations zero with backup feature
Home-page: https://https://github.com/aminiun/django-zeromigrations
Author: Amin Aminian
Author-email: a.aminian321@gmail.com
License: BSD-3-Clause
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Framework :: Django
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.6
License-File: LICENSE

Django Zero Migrations
======================

As the project grows up, the number of migration files increases over
time. As a result, running them can consume a lot of time, specifically
when you are running your tests.

``zeromigrations`` is a command to reset migration files (**I SUGGEST
NOT TO CALL IT ON PRODUCTION**). It basically runs 4 command:

1. ``migrate --fake {app_name} zero`` for each app
2. Remove old migration files, As new migrations is going to be
   generated.
3. ``makemigrations`` to generate initial migration file.
4. ``migrate --fake-initial`` to fake generated initial files.


**But besides that, this command can make a backup to restore in case of any failure.**

**Note** that ``migrate --fake`` command only runs for your own apps and
django apps like ``contenttype`` and third-party apps are excluded.

--------------

Installation
------------
First install the package:

.. code:: bash

    pip3 install django-zeromigrations

Then add it to your ``INSTALLED_APPS``:

.. code:: python

    INSTALLED_APPS = [
        ...
        "zero_migrations"
    ]

--------------

Usage
-----

First, run the command:

.. code:: bash

    python manage.py zeromigrations

    I suggest to make a backups from both your migrations and django_migrations table (just in case).
    1- make backup
    2- restore last backup
    3- just proceed

If you choose ``1- make backup``, it would make a backup then zero
migrations.

If you choose ``2- restore last backup``, it tries to restore the latest
backup that can be found. If not backup found, it would raise an error.

If you choose ``3- just proceed``, it assumes that you already have your
own backup and start setting migrations zero.
