Mysql
 sql >> Database >  >> RDS >> Mysql

Come eseguire il database di test di Django solo in memoria?

Se imposti il ​​motore di database su sqlite3 quando esegui i test, Django utilizzerà un database in memoria .

Sto usando un codice come questo nel mio settings.py per impostare il motore su sqlite durante l'esecuzione dei miei test:

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

O in Django 1.2:

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

E infine in Django 1.3 e 1.4:

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

(Il percorso completo del back-end non è strettamente necessario con Django 1.3, ma rende l'impostazione compatibile.)

Puoi anche aggiungere la seguente riga, nel caso tu abbia problemi con le migrazioni verso sud:

    SOUTH_TESTS_MIGRATE = False