This commit is contained in:
@@ -0,0 +1,4 @@
|
||||
ALTER TABLE tb_package_usage
|
||||
DROP COLUMN IF EXISTS enable_virtual_data_snapshot,
|
||||
DROP COLUMN IF EXISTS display_gain_ratio_snapshot,
|
||||
DROP COLUMN IF EXISTS virtual_total_mb_snapshot;
|
||||
27
migrations/000137_add_package_usage_traffic_snapshots.up.sql
Normal file
27
migrations/000137_add_package_usage_traffic_snapshots.up.sql
Normal file
@@ -0,0 +1,27 @@
|
||||
-- 为 tb_package_usage 增加流量语义快照字段,并按当前套餐模板回填历史数据。
|
||||
|
||||
ALTER TABLE tb_package_usage
|
||||
ADD COLUMN virtual_total_mb_snapshot BIGINT NOT NULL DEFAULT 0,
|
||||
ADD COLUMN display_gain_ratio_snapshot DECIMAL(18,6) NOT NULL DEFAULT 1.0,
|
||||
ADD COLUMN enable_virtual_data_snapshot BOOLEAN NOT NULL DEFAULT FALSE;
|
||||
|
||||
COMMENT ON COLUMN tb_package_usage.virtual_total_mb_snapshot IS '虚总量快照(业务停机阈值)';
|
||||
COMMENT ON COLUMN tb_package_usage.display_gain_ratio_snapshot IS '展示倍率快照(real_total_mb / virtual_total_mb)';
|
||||
COMMENT ON COLUMN tb_package_usage.enable_virtual_data_snapshot IS '是否启用虚流量快照';
|
||||
|
||||
UPDATE tb_package_usage pu
|
||||
SET
|
||||
virtual_total_mb_snapshot = CASE
|
||||
WHEN p.enable_virtual_data = TRUE AND p.virtual_data_mb > 0 THEN p.virtual_data_mb
|
||||
ELSE pu.data_limit_mb
|
||||
END,
|
||||
display_gain_ratio_snapshot = CASE
|
||||
WHEN p.enable_virtual_data = TRUE AND p.virtual_data_mb > 0 THEN ROUND((pu.data_limit_mb::NUMERIC / p.virtual_data_mb::NUMERIC), 6)
|
||||
ELSE 1.0
|
||||
END,
|
||||
enable_virtual_data_snapshot = CASE
|
||||
WHEN p.enable_virtual_data = TRUE AND p.virtual_data_mb > 0 THEN TRUE
|
||||
ELSE FALSE
|
||||
END
|
||||
FROM tb_package p
|
||||
WHERE p.id = pu.package_id;
|
||||
@@ -0,0 +1,15 @@
|
||||
ALTER TABLE tb_package_usage
|
||||
ADD COLUMN real_data_usage_mb BIGINT NOT NULL DEFAULT 0,
|
||||
ADD COLUMN virtual_data_usage_mb BIGINT NOT NULL DEFAULT 0;
|
||||
|
||||
COMMENT ON COLUMN tb_package_usage.real_data_usage_mb IS '历史遗留字段:真流量使用(MB)';
|
||||
COMMENT ON COLUMN tb_package_usage.virtual_data_usage_mb IS '历史遗留字段:虚流量使用(MB)';
|
||||
|
||||
UPDATE tb_package_usage
|
||||
SET
|
||||
real_data_usage_mb = data_usage_mb,
|
||||
virtual_data_usage_mb = CASE
|
||||
WHEN enable_virtual_data_snapshot = TRUE AND virtual_total_mb_snapshot > 0
|
||||
THEN LEAST(ROUND(data_usage_mb * display_gain_ratio_snapshot), data_limit_mb)::BIGINT
|
||||
ELSE data_usage_mb
|
||||
END;
|
||||
@@ -0,0 +1,5 @@
|
||||
-- 删除 tb_package_usage 中已退出主链路的历史遗留流量字段。
|
||||
|
||||
ALTER TABLE tb_package_usage
|
||||
DROP COLUMN IF EXISTS real_data_usage_mb,
|
||||
DROP COLUMN IF EXISTS virtual_data_usage_mb;
|
||||
Reference in New Issue
Block a user