Meine Django-Unit-Tests benötigen viel Zeit zum Ausführen, also suche ich nach Möglichkeiten, das zu beschleunigen. Ich erwäge die Installation eines SSD aber ich weiß, dass das auch seine Nachteile hat. Natürlich gibt es Dinge, die ich mit meinem Code machen könnte, aber ich suche nach einer strukturellen Lösung. Selbst das Ausführen eines einzelnen Tests ist langsam, da die Datenbank jedes Mal neu erstellt/nach Süden migriert werden muss. Also hier ist meine Idee...
Da ich weiß, dass die Testdatenbank immer recht klein sein wird, warum kann ich das System nicht einfach so konfigurieren, dass immer die gesamte Testdatenbank im RAM gehalten wird? Die Festplatte wird überhaupt nicht berührt. Wie kann ich das in Django konfigurieren? Ich würde es vorziehen, weiterhin mit MySQL da ich das in der Produktion verwende, aber wenn SQLite 3 oder etwas anderes macht dies einfach, ich würde diesen Weg gehen.
Verfügen SQLite oder MySQL über eine Option zur vollständigen Ausführung im Speicher? Es sollte möglich sein, eine RAM-Disk zu konfigurieren und dann die Testdatenbank so zu konfigurieren, dass sie ihre Daten dort speichert, aber ich bin mir nicht sicher, wie ich Django/MySQL anweisen kann, ein anderes Datenverzeichnis für eine bestimmte Datenbank zu verwenden, zumal es bei jedem Lauf gelöscht und neu erstellt wird. (Ich bin auf einem Mac FWIW.)