feat: 添加PostgreSQL数据库集成和机台管理功能
- 新增PostgreSQL数据库支持,包含内置和外部数据库两种部署模式 - 实现机台管理功能,包括保护状态控制和VHD关键词设置 - 添加用户认证系统,支持会话管理和权限控制 - 更新Docker配置,支持数据库持久化和健康检查 - 扩展API接口,提供完整的RESTful API文档 - 更新客户端代码以支持机台ID和保护检查功能 - 添加数据库初始化脚本和配置指南
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
-- PostgreSQL数据库配置脚本
|
||||
-- 请在安装PostgreSQL后,使用管理员权限运行此脚本
|
||||
|
||||
-- 1. 创建数据库
|
||||
CREATE DATABASE vhd_select
|
||||
WITH
|
||||
OWNER = postgres
|
||||
ENCODING = 'UTF8'
|
||||
LC_COLLATE = 'Chinese (Simplified)_China.936'
|
||||
LC_CTYPE = 'Chinese (Simplified)_China.936'
|
||||
TABLESPACE = pg_default
|
||||
CONNECTION LIMIT = -1;
|
||||
|
||||
-- 2. 连接到新创建的数据库
|
||||
\c vhd_select;
|
||||
|
||||
-- 3. 创建machines表
|
||||
CREATE TABLE IF NOT EXISTS machines (
|
||||
id SERIAL PRIMARY KEY,
|
||||
machine_id VARCHAR(255) UNIQUE NOT NULL,
|
||||
protected BOOLEAN DEFAULT FALSE,
|
||||
vhd_keyword VARCHAR(50) DEFAULT 'SDEZ',
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
-- 4. 创建更新时间戳的触发器函数
|
||||
CREATE OR REPLACE FUNCTION update_updated_at_column()
|
||||
RETURNS TRIGGER AS $$
|
||||
BEGIN
|
||||
NEW.updated_at = CURRENT_TIMESTAMP;
|
||||
RETURN NEW;
|
||||
END;
|
||||
$$ language 'plpgsql';
|
||||
|
||||
-- 5. 创建触发器
|
||||
CREATE TRIGGER update_machines_updated_at
|
||||
BEFORE UPDATE ON machines
|
||||
FOR EACH ROW
|
||||
EXECUTE FUNCTION update_updated_at_column();
|
||||
|
||||
-- 6. 创建索引以提高查询性能
|
||||
CREATE INDEX IF NOT EXISTS idx_machines_machine_id ON machines(machine_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_machines_protected ON machines(protected);
|
||||
|
||||
-- 7. 插入示例数据
|
||||
INSERT INTO machines (machine_id, protected, vhd_keyword) VALUES
|
||||
('MACHINE001', false, 'SDEZ'),
|
||||
('MACHINE002', true, 'SDHC'),
|
||||
('MACHINE003', false, 'SDXC')
|
||||
ON CONFLICT (machine_id) DO NOTHING;
|
||||
|
||||
-- 8. 显示创建结果
|
||||
SELECT 'Database setup completed successfully!' as status;
|
||||
SELECT * FROM machines;
|
||||
Reference in New Issue
Block a user