esten einer Django-Anwendung mit mehreren Legacy-Datenbank

Ich habe Django-Anwendung mit 5 Legacy-Datenbanken. Fast alle Modelle sind mit dem Metaattribut @ gesetzmanaged=False. Schon seitmanaged=Falseenn @ gesetzt ist, wurden Migrationen für jedes Modell mit der Option @ erstellmanaged=False. Und da Django Test Runner vorhandene Migrationen für jedes Modell auswählt, um Testtabellen in test_databases zu erstellen, erstellt es einfach nichts. Ich habe versucht, @ zu erstelltest.py Einstellungsdatei mit folgenden Problemumgehungen:

from web_services.settings.dev import *
from django.test.runner import DiscoverRunner


class UnManagedModelTestRunner(DiscoverRunner):

    def setup_test_environment(self, *args, **kwargs):
        from django.apps import apps
        self.unmanaged_models = [m for m in apps.get_models() if not m._meta.managed]
        for m in self.unmanaged_models:
            m._meta.managed = True
        super(UnManagedModelTestRunner, self).setup_test_environment(*args, **kwargs)

    def teardown_test_environment(self, *args, **kwargs):
        super(UnManagedModelTestRunner, self).teardown_test_environment(*args, **kwargs)
        # reset unmanaged models
        for m in self.unmanaged_models:
            m._meta.managed = False

TEST_RUNNER = 'web_services.settings.test.UnManagedModelTestRunner'

und läuftpython manage.py test --settings=web_services.settings.test. Es hat aber trotzdem nicht geholfen - bestehende Migrationen wurden bereits mit @ angelemanaged=False Möglichkeit. Tests scheinen erst zu funktionieren, nachdem ich sie in meinen Modellen auskommentiert habemanaged=False, alte Migrationen gelöscht, neue erstellt (ohnemanaged=False Möglichkeit)

Damit bin ich ziemlich verloren - was ist eigentlich eine gute Praxis, um Tests in meinem Fall zu schreiben (mehrere alte Datenbanken)? Es scheint falsch, sich mit dem Aufwand der Anpassung von Migrationen auseinanderzusetzen.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage