Django 1.7 introduit migrations de base de données.
Lors de l'exécution des tests unitaires dans Django 1.7, elle oblige à migrer, qui prend du temps. Donc je voudrais sauter le django migrations, et de créer la base de données dans l'état final.
Je sais que le fait d'ignorer les migrations peuvent être une mauvaise pratique, car cette partie du code n'est pas testé. Mais ce n'est pas le cas: je suis en cours d'exécution de la pleine migrations dans l'IC serveur de test (jenkins). Je ne veux sauter les migrations dans mes tests locaux, où la vitesse des questions.
Le contexte:
Jusqu'à ce que Django 1.6, lors de l'utilisation de Sud, j'ai utilisé le SOUTH_TESTS_MIGRATE paramètre:
Par défaut, le Sud de la commande syncdb s'appliquera également les migrations s'il est exécuté en mode non-interactif, qui comprend lorsque vous êtes en cours d'exécution, des essais, il sera exécuté à chaque migration chaque fois que vous exécutez vos tests.
Si vous souhaitez que le lanceur de test à utiliser syncdb au lieu de migrer - par exemple, si votre migrations prend beaucoup trop de temps à appliquer - réglez simplement SOUTH_TESTS_MIGRATE = False dans settings.py.
Cependant, syncdb n'existe plus, maintenant c'est à migrer.
Et à partir de Django 1.8 , je vais utiliser l' --keepdb paramètre:
L' --keepdb option peut être utilisée pour préserver la base de données de test entre les séries de tests. Ceci a l'avantage de faire l'impasse à la fois de la créer et de détruire des actions qui réduit considérablement le temps d'exécution des tests, en particulier ceux dans une grande suite de tests. Si le test de la base de données n'existe pas, il sera créé lors de la première exécution, puis conservées pour chaque run. Tout non imputées migrations sera également appliqué à la base de données de test avant de lancer la suite de tests.
Ainsi, cette question est limitée à Django 1.7.