Как я могу переключаться между базами данных во время выполнения на основе настроек?

Привет всем и заранее спасибо.

В моем сценарии мне нужно настроить разные базы данных, каждую для каждого семинара

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'default.sqlite3',
    },
    'ws1': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'ws1.sqlite3',
    },
    'ws2': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'ws3.sqlite3',
    }
}

Мастерские централизованы в базе данных default (как и другая информация, которая не важна для данного случая использования) и имеют следующую структуру

[
    {
        "name":"ws1",
        "database":"ws1.sqlite3"
    },
    {
        "name":"ws2",
        "database":"ws2.sqlite3"
    }
]

На основе вышеуказанных настроек пользователь может выбрать нужный ему Workshop, а мы (за кулисами) должны будем произвести горячее переключение базы данных, чтобы модели запрашивались в ws1.sqlite3 или ws2.sqlite3.

Каждая конкретная БД мастерской (например: ws1.sqlite3) структурирована следующим образом.

-- ws1.datas
CREATE TABLE "datas"
(
    "id"    INTEGER,
    "value" REAL,
    "unixtimestamp" INTEGER
);

-- ws1.options
CREATE TABLE "options"
(
    "name" TEXT,
    "value" TEXT
);
Вернуться на верх