db-init.js 924 B

123456789101112131415161718192021222324
  1. #!/usr/bin/env node
  2. 'use strict';
  3. // 初始化存储(建表)并打印健康状况
  4. // 用法:npm run db:init
  5. const { createContext } = require('../server/context.js');
  6. const { createOpsStore } = require('../ops-store.js');
  7. (async () => {
  8. const ctx = createContext();
  9. const store = createOpsStore(ctx.config);
  10. console.log(`存储驱动:${store.kind}`);
  11. const health = await store.health();
  12. if (!health.ok) {
  13. console.error(`初始化失败:${health.reason || 'storage-unreachable'} ${health.detail || ''}`);
  14. process.exit(1);
  15. }
  16. const summary = await store.summary();
  17. console.log(`表已就绪(${health.detail || ''})`);
  18. console.log(`当前数据:上传 ${summary.uploadCount} 次 · ${summary.rowCount} 行 · ${summary.schools.length} 个学校`);
  19. if (summary.coverage) console.log(`覆盖区间:${summary.coverage.from} ~ ${summary.coverage.to}`);
  20. await store.close();
  21. })();