Seite 1 von 1
[django] produktiv MySQL, tests aber mit SQLite
Verfasst: Freitag 26. März 2010, 08:48
von jens
Wie kann man es erreichen, das der normale Betrieb MySQL (oder was anderem) nutzt, die Tests aber mit SQLite und :memory: laufen???
So wie ich das sehe, ist die Test Datebank engine auch immer die der produktiv Einstellungen. Man kann lediglich den Datenbank Namen ändern.
Verfasst: Freitag 26. März 2010, 10:15
von orschiro
Schau dir mal den Trac von djangoproject.com an. Die lösen das mit einem ziemlich cleveren Trick.
http://code.djangoproject.com/browser/d ... ettings.py
Verfasst: Freitag 26. März 2010, 11:23
von jens
Naja, so clever finde ich das mit platform.node() nicht.
Einfacher wäre es, wenn man irgendwie testen könnte:
1. laufen gerade die tests
2. wird gerade der dev.server genutzt
3. läuft es produktiv
Wobei 3. sich ergibt, wenn 1 und 2 nicht zutreffen.
Verfasst: Freitag 26. März 2010, 14:19
von DasIch
Besser wäre es wenn man Instanzen für Entwicklung, Tests und Produktivsysteme verwendet oder zumindest seperate Konfigurationen wie bei Rails.
Verfasst: Samstag 27. März 2010, 10:40
von SpiritCrusher
Also ich persönlich halte es so, dass meine Django Projekte jeweils eine separate local_settings.py haben, die ich am Ende der normalen settings.py importiere... Damit lässt sich dein Problem vollkommen unproblematisch lösen

Verfasst: Samstag 27. März 2010, 13:08
von nemomuk
Ich gehe davon aus, dass du VCS verwendendest. Was spricht dagegen einen lokalen Clone anzulegen, der seine eigene settings.py hat? Dann kannst du deine Dateien auch ohne Probleme syncen.
Verfasst: Sonntag 28. März 2010, 00:08
von jens
Ich benutzte auch eine local_settings.py und natürlich kann ich da auch von MySQL auf SQLite wechseln.
Aber auch die Entwicklung geschieht z.Z. auch mit MySQL. Alleine die Tests sollen per SQLite :memory: laufen, weil es schneller ist.
Aber so wie es aussieht ist es einfach auch für die Entwicklung SQlite zu verwenden...
Dabei könnte man es doch so einfach machen. Statt nur den Datenbank Namen für die Tests änderbar zu machen, hätte man auch die Engine änderbar machen können...
Generell wäre es aber nett, wenn man unterscheiden könnte, ob man im dev. modul, test modus oder produktiv läuft... z.Z. packe ich in die local_settings.py ein SERVE_STATIC_FILES = True rein. Wüßte man aber ob mal im dev/test-Modus läuft, könnte man das dynamisch entscheiden, ob statische Dateien ausgeliefert werden sollen oder nicht.