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.
[django] produktiv MySQL, tests aber mit SQLite
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
http://code.djangoproject.com/browser/d ... ettings.py
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
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.
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.
-
- User
- Beiträge: 13
- Registriert: Montag 11. Januar 2010, 13:59
- Wohnort: Köln
- Kontaktdaten:
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 

- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
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.
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.