在我的场景中,我需要为每个研讨会配置不同的数据库。
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,我们(在幕后)将需要热切换数据库,以便 Models 将在ws1.sqlite3
or中查询ws2.sqlite3
。
每个特定的 Workshop DB(例如:)ws1.sqlite3
的结构如下:
-- ws1.datas
CREATE TABLE "datas"
(
"id" INTEGER,
"value" REAL,
"unixtimestamp" INTEGER
);
-- ws1.options
CREATE TABLE "options"
(
"name" TEXT,
"value" TEXT
);