The following is an example Windows batch script which runs makemigrations inside a tox virtual environment, then copies the migrations out of the virtual environment into your src directory. This is very useful for making changes to your Django model and generating the migrations on your Windows development machine. It would be straight-forward to convert this to run on Linux too.
REM Ensure the py36 virtualenv present tox -e py36 --notest REM Activate the py36 environment call .tox\py36\Scripts\activate.bat REM Execute the makemigrations command REM (Lots of quote escaping going on!) python -c "from django.core.management import execute_from_command_line; execute_from_command_line([\"\", \"makemigrations\", \"--settings=my_django_app.settings\"])" REM Copy the migrations from the py36 virtualenv into the src copy /Y .tox\py36\Lib\site-packages\my_django_app\migrations\* src\my_django_app\migrations\