apiVersion: v1 kind: ConfigMap metadata: name: todo-init-sql data: init.sql: | -- 初始化数据库脚本 -- 此文件会在 PostgreSQL 首次启动时自动执行 CREATE TABLE IF NOT EXISTS "user" ( id VARCHAR(36) PRIMARY KEY, username VARCHAR(50) NOT NULL UNIQUE, password VARCHAR(255) NOT NULL, real_name VARCHAR(100), phone VARCHAR(20), role VARCHAR(20) DEFAULT 'sales', status INTEGER DEFAULT 1, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE IF NOT EXISTS category ( id VARCHAR(36) PRIMARY KEY, name VARCHAR(100) NOT NULL, parent_id VARCHAR(36), sort_order INTEGER DEFAULT 0, status INTEGER DEFAULT 1, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE IF NOT EXISTS product ( id VARCHAR(36) PRIMARY KEY, name VARCHAR(200) NOT NULL, category_id VARCHAR(36), unit VARCHAR(20), price DECIMAL(10,2), stock_quantity INTEGER DEFAULT 0, status INTEGER DEFAULT 1, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE IF NOT EXISTS customer ( id VARCHAR(36) PRIMARY KEY, name VARCHAR(200) NOT NULL, phone VARCHAR(20), address VARCHAR(500), contact_person VARCHAR(100), remark TEXT, status INTEGER DEFAULT 1, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE IF NOT EXISTS "order" ( id VARCHAR(36) PRIMARY KEY, order_no VARCHAR(50) NOT NULL UNIQUE, customer_id VARCHAR(36), sales_user_id VARCHAR(36), total_amount DECIMAL(10,2) DEFAULT 0, status VARCHAR(20) DEFAULT 'pending', remark TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE IF NOT EXISTS order_item ( id VARCHAR(36) PRIMARY KEY, order_id VARCHAR(36) NOT NULL, product_id VARCHAR(36) NOT NULL, quantity INTEGER NOT NULL, unit_price DECIMAL(10,2) NOT NULL, subtotal DECIMAL(10,2) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE IF NOT EXISTS stock ( id VARCHAR(36) PRIMARY KEY, product_id VARCHAR(36) NOT NULL, warehouse VARCHAR(100), quantity INTEGER DEFAULT 0, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE IF NOT EXISTS stock_flow ( id VARCHAR(36) PRIMARY KEY, product_id VARCHAR(36) NOT NULL, type VARCHAR(20) NOT NULL, quantity INTEGER NOT NULL, remark VARCHAR(500), operator_id VARCHAR(36), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -- 插入默认管理员 INSERT INTO "user" (id, username, password, real_name, role) VALUES ('admin', 'admin', '$2a$10$N.zmdr9k7uOCQb376NoUnuTJ8iAt6Z5EHsM8lE9lBOsl7iAt6Z5EH', '管理员', 'admin') ON CONFLICT (username) DO NOTHING;