26 lines
1.1 KiB
SQL
26 lines
1.1 KiB
SQL
-- 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'); |