| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- -- 迁移文件: 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;
|