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