Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment exécuter la base de données de test de Django uniquement en mémoire ?

Si vous définissez votre moteur de base de données sur sqlite3 lorsque vous exécutez vos tests, Django utilisera une base de données en mémoire .

J'utilise un code comme celui-ci dans mon settings.py pour régler le moteur sur sqlite lors de l'exécution de mes tests :

if 'test' in sys.argv:
    DATABASE_ENGINE = 'sqlite3'

Ou dans Django 1.2 :

if 'test' in sys.argv:
    DATABASES['default'] = {'ENGINE': 'sqlite3'}

Et enfin dans Django 1.3 et 1.4 :

if 'test' in sys.argv:
    DATABASES['default'] = {'ENGINE': 'django.db.backends.sqlite3'}

(Le chemin complet vers le backend n'est pas strictement nécessaire avec Django 1.3, mais rend le paramètre compatible.)

Vous pouvez également ajouter la ligne suivante, au cas où vous auriez des problèmes avec les migrations vers le Sud :

    SOUTH_TESTS_MIGRATE = False