MCPcopy
hub / github.com/dqzboy/Docker-Proxy / initializeDatabase

Function initializeDatabase

hubcmdui/scripts/init-database.js:9–59  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

7const logger = require('../logger');
8
9async function initializeDatabase() {
10 try {
11 logger.info('开始初始化数据库...');
12
13 // 连接数据库
14 await database.connect();
15
16 // 始终运行 createTables 以确保新表被创建 (使用 IF NOT EXISTS 是安全的)
17 await database.createTables();
18
19 // 检查数据库是否已经初始化
20 const isInitialized = await database.isInitialized();
21 if (isInitialized) {
22 logger.info('数据库已经初始化,检查并初始化新配置...');
23 // 即使已初始化,也要确保 Registry 配置存在
24 await configServiceDB.initializeRegistryConfigs();
25 return;
26 }
27
28 // 创建默认管理员用户(如果不存在)
29 await database.createDefaultAdmin();
30
31 // 创建默认文档
32 await database.createDefaultDocuments();
33
34 // 初始化默认配置
35 await configServiceDB.initializeDefaultConfig();
36
37 // 初始化 Registry 配置
38 await configServiceDB.initializeRegistryConfigs();
39
40 // 标记数据库已初始化
41 await database.markAsInitialized();
42
43 logger.info('数据库初始化完成!');
44
45 // 显示数据库信息
46 const userCount = await database.get('SELECT COUNT(*) as count FROM users');
47 const configCount = await database.get('SELECT COUNT(*) as count FROM configs');
48 const docCount = await database.get('SELECT COUNT(*) as count FROM documents');
49
50 logger.info(`数据库统计:`);
51 logger.info(` 用户数量: ${userCount.count}`);
52 logger.info(` 配置项数量: ${configCount.count}`);
53 logger.info(` 文档数量: ${docCount.count}`);
54
55 } catch (error) {
56 logger.error('数据库初始化失败:', error);
57 process.exit(1);
58 }
59}
60
61/**
62 * 检查数据库是否已经初始化

Callers 2

startServerFunction · 0.85
init-database.jsFile · 0.85

Calls 9

connectMethod · 0.80
createTablesMethod · 0.80
isInitializedMethod · 0.80
createDefaultAdminMethod · 0.80
markAsInitializedMethod · 0.80
getMethod · 0.80

Tested by

no test coverage detected