About Testing Multi-database Operations with Django Unit Tests

Add the databases attribute to the test case, to create multiple databases for the tests:

from django.test import TestCase
from django.contrib.auth.models import User

class MultiDBTest(TestCase):
    databases = {"default", "archive"}

    def setUp(self):
        User.objects.create(username="user1")
        User.objects.using("archive").create(username="user2")

    def test_default_db(self):
        self.assertTrue(User.objects.filter(username="user1").exists())
        self.assertFalse(User.objects.filter(username="user2").exists())

    def test_archive_db(self):
        self.assertTrue(
            User.objects.using("archive").filter(username="user2").exists()
        )
        self.assertFalse(
            User.objects.using("archive").filter(username="user1").exists()
        )

Tips and Tricks Development Testing Databases Django 5.2 Django 4.2 Django 3.2 PostgreSQL MySQL SQLite