-- 迁移文件: 006_create_price_tier_table.sql -- 描述: 创建价格阶梯表,支持模型阶梯计费 -- ============================================ -- 正向迁移: 添加 pricing_mode 字段,创建阶梯表 -- ============================================ -- 1. 给 model_price 表添加 pricing_mode 字段 ALTER TABLE aigcspace.model_price ADD COLUMN IF NOT EXISTS pricing_mode VARCHAR(20) DEFAULT 'simple' NOT NULL; -- 添加字段注释 COMMENT ON COLUMN aigcspace.model_price.pricing_mode IS '计价模式:simple=简单计费, tier=阶梯计费'; -- 2. 创建价格阶梯表 CREATE TABLE IF NOT EXISTS aigcspace.model_price_tier ( id SERIAL PRIMARY KEY, price_id INTEGER NOT NULL, tier_min INTEGER DEFAULT 0 NOT NULL, tier_max INTEGER, input_price NUMERIC(10, 4) NOT NULL, output_price NUMERIC(10, 4) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, CONSTRAINT fk_price_tier_price_id FOREIGN KEY (price_id) REFERENCES aigcspace.model_price(id) ON DELETE CASCADE ); -- 添加表注释 COMMENT ON TABLE aigcspace.model_price_tier IS '模型价格阶梯表,用于阶梯计费'; COMMENT ON COLUMN aigcspace.model_price_tier.id IS '主键ID'; COMMENT ON COLUMN aigcspace.model_price_tier.price_id IS '关联的价格ID'; COMMENT ON COLUMN aigcspace.model_price_tier.tier_min IS '阶梯起始token数'; COMMENT ON COLUMN aigcspace.model_price_tier.tier_max IS '阶梯结束token数,NULL表示无上限'; COMMENT ON COLUMN aigcspace.model_price_tier.input_price IS '该阶梯输入单价'; COMMENT ON COLUMN aigcspace.model_price_tier.output_price IS '该阶梯输出单价'; COMMENT ON COLUMN aigcspace.model_price_tier.created_at IS '创建时间'; COMMENT ON COLUMN aigcspace.model_price_tier.updated_at IS '更新时间'; -- 创建索引优化查询 CREATE INDEX IF NOT EXISTS idx_price_tier_price_id ON aigcspace.model_price_tier(price_id); -- ============================================ -- 回滚迁移 -- ============================================ -- DROP TABLE IF EXISTS aigcspace.model_price_tier CASCADE; -- ALTER TABLE aigcspace.model_price DROP COLUMN IF EXISTS pricing_mode;