-- 1. 创建 rust_logger 专用用户
CREATE USER rust_logger_user WITH PASSWORD 'rust_logger_password';

-- 2. 创建 rust_logger 专用数据库
CREATE DATABASE rust_logger_db OWNER rust_logger_user;

-- 3. 赋予权限（确保它能在 rust_logger_db 库里创建 Schema）
GRANT ALL PRIVILEGES ON DATABASE rust_logger_db TO rust_logger_user;

CREATE TABLE app_logs (
    id BIGSERIAL, -- 注意：后面会讲分区，分区表通常不直接用主键
    service_name VARCHAR(50) NOT NULL, -- 新增：用于区分是哪个服务
    log_level VARCHAR(10) NOT NULL,
    message TEXT NOT NULL,
    module VARCHAR(100),
    created_at TIMESTAMPTZ NOT NULL
) PARTITION BY RANGE (created_at); -- 核心优化：按时间分区


-- 建立索引（包含 service_name）
CREATE INDEX idx_logs_service_time ON app_logs(service_name, created_at);

-- create_next_month.sql
-- 这里的日期逻辑需要通过外部脚本（Python/Shell）动态生成 SQL 语句
CREATE TABLE IF NOT EXISTS app_logs_2026_01 PARTITION OF app_logs
    FOR VALUES FROM ('2026-01-01') TO ('2026-02-01');