feat: 新增数据库迁移,重命名 device_no 为 virtual_no,新增 iot_card.virtual_no 和 package.virtual_ratio 字段
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m3s
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m3s
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
@@ -0,0 +1,7 @@
|
||||
-- 回滚:将 virtual_no 改回 device_no
|
||||
|
||||
ALTER TABLE tb_device RENAME COLUMN virtual_no TO device_no;
|
||||
|
||||
ALTER INDEX IF EXISTS idx_device_virtual_no RENAME TO idx_device_no;
|
||||
|
||||
ALTER TABLE tb_personal_customer_device RENAME COLUMN virtual_no TO device_no;
|
||||
11
migrations/000073_rename_device_no_to_virtual_no.up.sql
Normal file
11
migrations/000073_rename_device_no_to_virtual_no.up.sql
Normal file
@@ -0,0 +1,11 @@
|
||||
-- 将 tb_device 和 tb_personal_customer_device 中的 device_no 字段改名为 virtual_no
|
||||
-- 原因:统一"虚拟号"的字段命名,与 tb_iot_card.virtual_no 保持一致
|
||||
|
||||
-- 重命名 tb_device.device_no → virtual_no
|
||||
ALTER TABLE tb_device RENAME COLUMN device_no TO virtual_no;
|
||||
|
||||
-- 同步重命名唯一索引(可选,保持命名一致性)
|
||||
ALTER INDEX IF EXISTS idx_device_no RENAME TO idx_device_virtual_no;
|
||||
|
||||
-- 重命名 tb_personal_customer_device.device_no → virtual_no
|
||||
ALTER TABLE tb_personal_customer_device RENAME COLUMN device_no TO virtual_no;
|
||||
2
migrations/000074_add_virtual_no_to_iot_card.down.sql
Normal file
2
migrations/000074_add_virtual_no_to_iot_card.down.sql
Normal file
@@ -0,0 +1,2 @@
|
||||
DROP INDEX IF EXISTS idx_iot_card_virtual_no;
|
||||
ALTER TABLE tb_iot_card DROP COLUMN IF EXISTS virtual_no;
|
||||
7
migrations/000074_add_virtual_no_to_iot_card.up.sql
Normal file
7
migrations/000074_add_virtual_no_to_iot_card.up.sql
Normal file
@@ -0,0 +1,7 @@
|
||||
ALTER TABLE tb_iot_card ADD COLUMN IF NOT EXISTS virtual_no VARCHAR(50);
|
||||
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_iot_card_virtual_no
|
||||
ON tb_iot_card(virtual_no)
|
||||
WHERE deleted_at IS NULL AND virtual_no IS NOT NULL AND virtual_no <> '';
|
||||
|
||||
COMMENT ON COLUMN tb_iot_card.virtual_no IS '虚拟号(可空,全局唯一)';
|
||||
1
migrations/000075_add_virtual_ratio_to_package.down.sql
Normal file
1
migrations/000075_add_virtual_ratio_to_package.down.sql
Normal file
@@ -0,0 +1 @@
|
||||
ALTER TABLE tb_package DROP COLUMN IF EXISTS virtual_ratio;
|
||||
11
migrations/000075_add_virtual_ratio_to_package.up.sql
Normal file
11
migrations/000075_add_virtual_ratio_to_package.up.sql
Normal file
@@ -0,0 +1,11 @@
|
||||
ALTER TABLE tb_package ADD COLUMN IF NOT EXISTS virtual_ratio DECIMAL(18,6) NOT NULL DEFAULT 1.0;
|
||||
|
||||
COMMENT ON COLUMN tb_package.virtual_ratio IS '虚流量比例(real_data_mb/virtual_data_mb),创建套餐时计算存储,默认1.0';
|
||||
|
||||
UPDATE tb_package
|
||||
SET virtual_ratio = CASE
|
||||
WHEN enable_virtual_data = true AND virtual_data_mb > 0
|
||||
THEN (real_data_mb::DECIMAL / virtual_data_mb::DECIMAL)
|
||||
ELSE 1.0
|
||||
END
|
||||
WHERE deleted_at IS NULL;
|
||||
Reference in New Issue
Block a user