Как я могу переключаться между базами данных во время выполнения на основе настроек?
Привет всем и заранее спасибо.
В моем сценарии мне нужно настроить разные базы данных, каждую для каждого семинара
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
);