Disable migrations when running your Django tests.
Django Test Without Migrations: Disable migrations when running your Django tests
Test Without Migrations is a manage.py test command extension.
The new Django 1.7 and 1.8 migration backend demands that you create a migration every time you change a model.
This can be inconvenient when you’re just trying to explore your models code.
In older Django versions, with South we could use the SOUTH_TEST_MIGRATIONS settings to tell Django to simply create all model tables without running migrations.
This app adds this capability to Django by extending the manage.py test command with a –nomigrations option.
Test Without Migrations works with Django 1.7+.
To install it, simply:
$ pip install django-test-without-migrations
Then add it to your INSTALLED_APPS on your settings.py:
INSTALLED_APPS = ( # ... 'test_without_migrations', )
You will want to make sure that test_without_migrations appears before any other apps in INSTALLED_APPS that provide a custom test management command.
In this case, you will also want to set the TEST_WITHOUT_MIGRATIONS_COMMAND setting:
TEST_WITHOUT_MIGRATIONS_COMMAND = 'django_nose.management.commands.test.Command'
This will ensure that you don’t lose any additional functionality provided by your custom test management command.
Inform the flag --nomigrations when running your tests:
$ python manage.py test --nomigrations
Or use the alias -n:
$ python manage.py test -n
This library was directly inspired by this solution: https://gist.github.com/NotSqrt/5f3c76cd15e40ef62d09
The MIT License.