Как перенести только определенную таблицу в django?

Я пробовал использовать несколько баз данных в django. Итак, я установил базы данных таким образом

# settings.py

DATABASE_ROUTERS = [
    'stage1.routers.MultiDBRouter',
]
DATABASE_APPS_MAPPING = {
    'stage1': 'stage1',
}

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    },
    'stage1': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'stage1',
        'HOST': 'localhost',
        'USER': 'root',
        'PASSWORD': '######',
        'PORT': 3306,
        'CHARSET': 'utf8mb4',
    },
}
# stage1.routers.py

class MultiDBRouter(object):
    
    def __init__(self):
        self.model_list = ['stage1']

    def db_for_read(self, model, **hints):
        if model._meta.app_label in self.model_list:
            return model._meta.app_label
        return None
    
    def db_for_write(self, model, **hints):
        if model._meta.app_label == 'stage1':
            return 'stage1'
        return None
    
    def allow_relation(self, obj1, obj2, **hints):
        if (obj1._meta.app_label in self.model_list or obj2._meta.app_label in self.model_list):
            return True
        return None
    
    def allow_migrate(self, db, app_label, model_name=None, **hints):
        if app_label == 'stage1':
            return db == 'stage1'
        return None
# stage1.models.py

from django.db import models


class Room(models.Model):

    name = models.CharField(max_length=100)
    sort = models.CharField(max_length=100)

    class Meta:
        app_label = "stage1"

Я сделал manage.py migrate --database=stage1 и это сработало. Но есть кое-что неправильное, чего я не предполагал.

Я просто хотел stage1 База данных имеет только одну таблицу room. Но в ней есть все таблицы, которые в основном заданы как auth_group, django_session...

Как я могу сделать только одну таблицу room в базе данных stage1?

Пожалуйста, помогите мне.

Вернуться на верх