feat(project): init
This commit is contained in:
26
init.sql
Normal file
26
init.sql
Normal file
@@ -0,0 +1,26 @@
|
||||
-- 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');
|
||||
Reference in New Issue
Block a user