MCPcopy Create free account
hub / github.com/TeleBoxOrg/TeleBox_Plugins / initDatabase

Function initDatabase

shift/shift.ts:158–199  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

156 enableChainForwarding: true,
157 useLowdb: true,
158 },
159 };
160 lowdb = await JSONFilePreset<ShiftDatabaseV2>(lowdbPath, defaultData);
161 console.log("[SHIFT] 使用 lowdb 数据库");
162 } else if (sqliteDb) {
163 // 初始化 SQLite 表
164 sqliteDb.exec(`
165 CREATE TABLE IF NOT EXISTS shift_rules (
166 source_id INTEGER PRIMARY KEY,
167 target_id INTEGER NOT NULL,
168 options TEXT NOT NULL,
169 target_type TEXT NOT NULL,
170 paused INTEGER DEFAULT 0,
171 created_at TEXT NOT NULL,
172 filters TEXT NOT NULL
173 )
174 `);
175
176 sqliteDb.exec(`
177 CREATE TABLE IF NOT EXISTS shift_stats (
178 stats_key TEXT PRIMARY KEY,
179 stats_data TEXT NOT NULL
180 )
181 `);
182
183 // 提示可以迁移
184 console.log("[SHIFT] 使用 SQLite 数据库(建议迁移到 lowdb)");
185 }
186}
187
188// 自动初始化
189initDatabase().catch(console.error);
190
191// SQLite 到 lowdb 迁移功能
192async function migrateToLowdb(): Promise<boolean> {
193 if (!sqliteDb || useLowdb) return false;
194
195 try {
196 console.log("[SHIFT] 开始迁移数据到 lowdb...");
197
198 // 读取 SQLite 数据
199 const rules = sqliteDb.prepare("SELECT * FROM shift_rules").all() as any[];
200 const stats = sqliteDb.prepare("SELECT * FROM shift_stats").all() as any[];
201
202 // 转换规则

Callers 1

shift.tsFile · 0.70

Calls 1

execMethod · 0.80

Tested by

no test coverage detected