Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie führe ich die Testdatenbank von Django nur im Speicher aus?

Wenn Sie Ihre Datenbank-Engine beim Ausführen Ihrer Tests auf sqlite3 einstellen, Django verwendet eine In-Memory-Datenbank .

Ich verwende Code wie diesen in meiner settings.py um die Engine beim Ausführen meiner Tests auf sqlite zu setzen:

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

Oder in Django 1.2:

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

Und schließlich in Django 1.3 und 1.4:

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

(Der vollständige Pfad zum Backend ist bei Django 1.3 nicht unbedingt erforderlich, macht die Einstellung aber aufwärtskompatibel.)

Sie können auch die folgende Zeile hinzufügen, falls Sie Probleme mit Südmigrationen haben:

    SOUTH_TESTS_MIGRATE = False