In meinem Projekt verwende ich mehrere Datenbanken, 3 um genau zu sein. Eine Standarddatenbank und zwei Referenzdatenbanken (ein anderer Host), die von unserem Daten-Team mit Strom versorgt und aktualisiert werden. Ich verwende 4 Tabellen aus 2 externen Datenbanken, die mit ./manage.py inspectdb
überprüft wurden. Sie sind auf managed=False
eingestellt Alles funktioniert gut, meine Anwendung funktioniert wie erwartet und geplant.Django und Pytest, mehrere Datenbanken, Löschen beibehalten
Jetzt beginnt der Spaß, ich muss Tests schreiben. Ich möchte meine Datenbanken nicht löschen. Ich muss von ihnen lesen, ich möchte keine Fixtures erstellen. Jedes Mal, wenn ich versuche, pytest oder benutzerdefinierte Django-Tests zu verwenden, versucht es, meine Datenbanken zu löschen, neu zu erstellen, Migrationen auszuführen und so weiter.
Wie kann ich das bewahren? Entweder in Py- oder Djangotests? Ich habe versucht, --re-usedb und paar andere Params.
Dies ist meine Datenbankeinstellungen (Teile, die hochgeladen werden können)
DATABASES = {
'default': {
'ENGINE': 'django.contrib.gis.db.backends.postgis',
'NAME': 'default_db',
'USER': 'default_usr',
'PASSWORD': 'default_pass',
'HOST': 'postgres.somehost.com',
'SUPPORTS_TRANSACTIONS': True,
},
'geolocations': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'OPTIONS': {
'options': '-c search_path=some_schema'
},
'NAME': 'geo_name',
'USER': 'geo_user',
'PASSWORD': 'geo_password',
'HOST': 'some-host.domain.com',
'SUPPORTS_TRANSACTIONS': True,
},
'eoc': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'OPTIONS': {
'options': '-c search_path=another_schema'
},
'NAME': 'eco_name',
'USER': 'eoc_user',
'PASSWORD': 'eoc_',
'HOST': 'some-another-host.domain.com',
'SUPPORTS_TRANSACTIONS': True,
}
}