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
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
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
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
Version 0.6 also supports
$ python manage.py testserver --nomigrations myfixture.json
This library was directly inspired by this solution: https://gist.github.com/NotSqrt/5f3c76cd15e40ef62d09
The MIT License.