Files
Web_BLS_RCUAction_Server/SQL_Script/README.md
XuJiacheng f61a63d8c1 feat: 外置数据库初始化与分区管理功能
- 删除主服务中的数据库初始化与分区管理逻辑,降低复杂度。
- 新增 SQL 脚本用于数据库初始化和分区管理,集中在 SQL_Script 目录。
- 移除环境变量 ENABLE_DATABASE_INITIALIZATION,简化配置。
- 更新 package.json,新增数据库初始化和分区管理的 npm 脚本。
- 删除不再使用的初始化和分区管理相关文件。
- 提供统一的命令行接口,支持外部调用数据库初始化和分区创建。
2026-03-04 14:54:27 +08:00

1.5 KiB
Raw Blame History

SQL_Script

用于独立于业务服务的数据库初始化与分区管理。

目标:主服务 bls-rcu-action-backend 只负责消费 Kafka 与写库,不再承担任何建库/建表/建分区职责。

文件说明

  • init_rcu_action.sql
    • 初始化 rcu_action.rcu_action_events 主表与索引
  • init_room_status.sql
    • 初始化 room_status.room_status_moment 主表与索引
  • partition_rcu_action.sql
    • rcu_action 按天 RANGE 分区 SQL 模板
  • partition_room_status.sql
    • room_statushotel_id LIST 分区 SQL 模板
  • db_manager.js
    • Node 调用入口CLI + 可 import

环境变量

与主服务统一:

  • DB_HOST / POSTGRES_HOST
  • DB_PORT / POSTGRES_PORT
  • DB_USER / POSTGRES_USER
  • DB_PASSWORD / POSTGRES_PASSWORD
  • DB_DATABASE / POSTGRES_DATABASE
  • DB_SSL=true|false
  • DB_ADMIN_DATABASE(可选,默认 postgres

命令行调用

bls-rcu-action-backend 目录执行:

  • npm run db:init:all
    • 创建数据库(若不存在)+ 初始化两套主表
  • npm run db:init:rcu-action
  • npm run db:init:room-status
  • npm run db:partition:rcu-action
    • 默认预建未来 30 天分区
  • npm run db:partition:room-status -- 1001
    • 为 hotel_id=1001 建分区

其他程序直接 import

import {
  initAll,
  ensureDatabase,
  ensureRcuPartitions,
  ensureRoomStatusPartition
} from '../SQL_Script/db_manager.js';

await initAll();
await ensureRcuPartitions(45);
await ensureRoomStatusPartition(1001);