216 lines
8.6 KiB
MySQL
216 lines
8.6 KiB
MySQL
|
|
-- =============================================
|
|||
|
|
-- 租户-项目两级架构 - 业务表增加 project_id 字段
|
|||
|
|
-- 执行顺序:ADD NULL → UPDATE 回填 → MODIFY NOT NULL → ADD INDEX
|
|||
|
|
-- 前置条件:02-default-data.sql 已执行,system_project 中已有默认项目数据
|
|||
|
|
-- =============================================
|
|||
|
|
|
|||
|
|
-- -----------------------------------------------
|
|||
|
|
-- 1. iot_device
|
|||
|
|
-- -----------------------------------------------
|
|||
|
|
ALTER TABLE iot_device ADD COLUMN project_id BIGINT NULL COMMENT '项目编号';
|
|||
|
|
|
|||
|
|
UPDATE iot_device d
|
|||
|
|
JOIN system_project p ON p.tenant_id = d.tenant_id AND p.code = 'DEFAULT' AND p.deleted = 0
|
|||
|
|
SET d.project_id = p.id
|
|||
|
|
WHERE d.project_id IS NULL;
|
|||
|
|
|
|||
|
|
ALTER TABLE iot_device MODIFY COLUMN project_id BIGINT NOT NULL COMMENT '项目编号';
|
|||
|
|
|
|||
|
|
ALTER TABLE iot_device ADD INDEX idx_project_id (project_id);
|
|||
|
|
|
|||
|
|
-- -----------------------------------------------
|
|||
|
|
-- 2. ops_order
|
|||
|
|
-- -----------------------------------------------
|
|||
|
|
ALTER TABLE ops_order ADD COLUMN project_id BIGINT NULL COMMENT '项目编号';
|
|||
|
|
|
|||
|
|
UPDATE ops_order d
|
|||
|
|
JOIN system_project p ON p.tenant_id = d.tenant_id AND p.code = 'DEFAULT' AND p.deleted = 0
|
|||
|
|
SET d.project_id = p.id
|
|||
|
|
WHERE d.project_id IS NULL;
|
|||
|
|
|
|||
|
|
ALTER TABLE ops_order MODIFY COLUMN project_id BIGINT NOT NULL COMMENT '项目编号';
|
|||
|
|
|
|||
|
|
ALTER TABLE ops_order ADD INDEX idx_project_id (project_id);
|
|||
|
|
|
|||
|
|
-- -----------------------------------------------
|
|||
|
|
-- 3. ops_order_event
|
|||
|
|
-- -----------------------------------------------
|
|||
|
|
ALTER TABLE ops_order_event ADD COLUMN project_id BIGINT NULL COMMENT '项目编号';
|
|||
|
|
|
|||
|
|
UPDATE ops_order_event d
|
|||
|
|
JOIN system_project p ON p.tenant_id = d.tenant_id AND p.code = 'DEFAULT' AND p.deleted = 0
|
|||
|
|
SET d.project_id = p.id
|
|||
|
|
WHERE d.project_id IS NULL;
|
|||
|
|
|
|||
|
|
ALTER TABLE ops_order_event MODIFY COLUMN project_id BIGINT NOT NULL COMMENT '项目编号';
|
|||
|
|
|
|||
|
|
ALTER TABLE ops_order_event ADD INDEX idx_project_id (project_id);
|
|||
|
|
|
|||
|
|
-- -----------------------------------------------
|
|||
|
|
-- 4. ops_order_dispatch
|
|||
|
|
-- -----------------------------------------------
|
|||
|
|
ALTER TABLE ops_order_dispatch ADD COLUMN project_id BIGINT NULL COMMENT '项目编号';
|
|||
|
|
|
|||
|
|
UPDATE ops_order_dispatch d
|
|||
|
|
JOIN system_project p ON p.tenant_id = d.tenant_id AND p.code = 'DEFAULT' AND p.deleted = 0
|
|||
|
|
SET d.project_id = p.id
|
|||
|
|
WHERE d.project_id IS NULL;
|
|||
|
|
|
|||
|
|
ALTER TABLE ops_order_dispatch MODIFY COLUMN project_id BIGINT NOT NULL COMMENT '项目编号';
|
|||
|
|
|
|||
|
|
ALTER TABLE ops_order_dispatch ADD INDEX idx_project_id (project_id);
|
|||
|
|
|
|||
|
|
-- -----------------------------------------------
|
|||
|
|
-- 5. ops_order_queue
|
|||
|
|
-- -----------------------------------------------
|
|||
|
|
ALTER TABLE ops_order_queue ADD COLUMN project_id BIGINT NULL COMMENT '项目编号';
|
|||
|
|
|
|||
|
|
UPDATE ops_order_queue d
|
|||
|
|
JOIN system_project p ON p.tenant_id = d.tenant_id AND p.code = 'DEFAULT' AND p.deleted = 0
|
|||
|
|
SET d.project_id = p.id
|
|||
|
|
WHERE d.project_id IS NULL;
|
|||
|
|
|
|||
|
|
ALTER TABLE ops_order_queue MODIFY COLUMN project_id BIGINT NOT NULL COMMENT '项目编号';
|
|||
|
|
|
|||
|
|
ALTER TABLE ops_order_queue ADD INDEX idx_project_id (project_id);
|
|||
|
|
|
|||
|
|
-- -----------------------------------------------
|
|||
|
|
-- 6. ops_bus_area
|
|||
|
|
-- -----------------------------------------------
|
|||
|
|
ALTER TABLE ops_bus_area ADD COLUMN project_id BIGINT NULL COMMENT '项目编号';
|
|||
|
|
|
|||
|
|
UPDATE ops_bus_area d
|
|||
|
|
JOIN system_project p ON p.tenant_id = d.tenant_id AND p.code = 'DEFAULT' AND p.deleted = 0
|
|||
|
|
SET d.project_id = p.id
|
|||
|
|
WHERE d.project_id IS NULL;
|
|||
|
|
|
|||
|
|
ALTER TABLE ops_bus_area MODIFY COLUMN project_id BIGINT NOT NULL COMMENT '项目编号';
|
|||
|
|
|
|||
|
|
ALTER TABLE ops_bus_area ADD INDEX idx_project_id (project_id);
|
|||
|
|
|
|||
|
|
-- -----------------------------------------------
|
|||
|
|
-- 7. ops_area_device_relation
|
|||
|
|
-- -----------------------------------------------
|
|||
|
|
ALTER TABLE ops_area_device_relation ADD COLUMN project_id BIGINT NULL COMMENT '项目编号';
|
|||
|
|
|
|||
|
|
UPDATE ops_area_device_relation d
|
|||
|
|
JOIN system_project p ON p.tenant_id = d.tenant_id AND p.code = 'DEFAULT' AND p.deleted = 0
|
|||
|
|
SET d.project_id = p.id
|
|||
|
|
WHERE d.project_id IS NULL;
|
|||
|
|
|
|||
|
|
ALTER TABLE ops_area_device_relation MODIFY COLUMN project_id BIGINT NOT NULL COMMENT '项目编号';
|
|||
|
|
|
|||
|
|
ALTER TABLE ops_area_device_relation ADD INDEX idx_project_id (project_id);
|
|||
|
|
|
|||
|
|
-- -----------------------------------------------
|
|||
|
|
-- 8. ops_order_security_ext
|
|||
|
|
-- -----------------------------------------------
|
|||
|
|
ALTER TABLE ops_order_security_ext ADD COLUMN project_id BIGINT NULL COMMENT '项目编号';
|
|||
|
|
|
|||
|
|
UPDATE ops_order_security_ext d
|
|||
|
|
JOIN system_project p ON p.tenant_id = d.tenant_id AND p.code = 'DEFAULT' AND p.deleted = 0
|
|||
|
|
SET d.project_id = p.id
|
|||
|
|
WHERE d.project_id IS NULL;
|
|||
|
|
|
|||
|
|
ALTER TABLE ops_order_security_ext MODIFY COLUMN project_id BIGINT NOT NULL COMMENT '项目编号';
|
|||
|
|
|
|||
|
|
ALTER TABLE ops_order_security_ext ADD INDEX idx_project_id (project_id);
|
|||
|
|
|
|||
|
|
-- -----------------------------------------------
|
|||
|
|
-- 9. ops_area_security_user
|
|||
|
|
-- -----------------------------------------------
|
|||
|
|
ALTER TABLE ops_area_security_user ADD COLUMN project_id BIGINT NULL COMMENT '项目编号';
|
|||
|
|
|
|||
|
|
UPDATE ops_area_security_user d
|
|||
|
|
JOIN system_project p ON p.tenant_id = d.tenant_id AND p.code = 'DEFAULT' AND p.deleted = 0
|
|||
|
|
SET d.project_id = p.id
|
|||
|
|
WHERE d.project_id IS NULL;
|
|||
|
|
|
|||
|
|
ALTER TABLE ops_area_security_user MODIFY COLUMN project_id BIGINT NOT NULL COMMENT '项目编号';
|
|||
|
|
|
|||
|
|
ALTER TABLE ops_area_security_user ADD INDEX idx_project_id (project_id);
|
|||
|
|
|
|||
|
|
-- -----------------------------------------------
|
|||
|
|
-- 10. ops_order_clean_ext
|
|||
|
|
-- -----------------------------------------------
|
|||
|
|
ALTER TABLE ops_order_clean_ext ADD COLUMN project_id BIGINT NULL COMMENT '项目编号';
|
|||
|
|
|
|||
|
|
UPDATE ops_order_clean_ext d
|
|||
|
|
JOIN system_project p ON p.tenant_id = d.tenant_id AND p.code = 'DEFAULT' AND p.deleted = 0
|
|||
|
|
SET d.project_id = p.id
|
|||
|
|
WHERE d.project_id IS NULL;
|
|||
|
|
|
|||
|
|
ALTER TABLE ops_order_clean_ext MODIFY COLUMN project_id BIGINT NOT NULL COMMENT '项目编号';
|
|||
|
|
|
|||
|
|
ALTER TABLE ops_order_clean_ext ADD INDEX idx_project_id (project_id);
|
|||
|
|
|
|||
|
|
-- -----------------------------------------------
|
|||
|
|
-- 11. ops_cleaner_status
|
|||
|
|
-- -----------------------------------------------
|
|||
|
|
ALTER TABLE ops_cleaner_status ADD COLUMN project_id BIGINT NULL COMMENT '项目编号';
|
|||
|
|
|
|||
|
|
UPDATE ops_cleaner_status d
|
|||
|
|
JOIN system_project p ON p.tenant_id = d.tenant_id AND p.code = 'DEFAULT' AND p.deleted = 0
|
|||
|
|
SET d.project_id = p.id
|
|||
|
|
WHERE d.project_id IS NULL;
|
|||
|
|
|
|||
|
|
ALTER TABLE ops_cleaner_status MODIFY COLUMN project_id BIGINT NOT NULL COMMENT '项目编号';
|
|||
|
|
|
|||
|
|
ALTER TABLE ops_cleaner_status ADD INDEX idx_project_id (project_id);
|
|||
|
|
|
|||
|
|
-- -----------------------------------------------
|
|||
|
|
-- 12. ops_cleaner_performance_monthly
|
|||
|
|
-- -----------------------------------------------
|
|||
|
|
ALTER TABLE ops_cleaner_performance_monthly ADD COLUMN project_id BIGINT NULL COMMENT '项目编号';
|
|||
|
|
|
|||
|
|
UPDATE ops_cleaner_performance_monthly d
|
|||
|
|
JOIN system_project p ON p.tenant_id = d.tenant_id AND p.code = 'DEFAULT' AND p.deleted = 0
|
|||
|
|
SET d.project_id = p.id
|
|||
|
|
WHERE d.project_id IS NULL;
|
|||
|
|
|
|||
|
|
ALTER TABLE ops_cleaner_performance_monthly MODIFY COLUMN project_id BIGINT NOT NULL COMMENT '项目编号';
|
|||
|
|
|
|||
|
|
ALTER TABLE ops_cleaner_performance_monthly ADD INDEX idx_project_id (project_id);
|
|||
|
|
|
|||
|
|
-- -----------------------------------------------
|
|||
|
|
-- 13. ops_device_trajectory
|
|||
|
|
-- -----------------------------------------------
|
|||
|
|
ALTER TABLE ops_device_trajectory ADD COLUMN project_id BIGINT NULL COMMENT '项目编号';
|
|||
|
|
|
|||
|
|
UPDATE ops_device_trajectory d
|
|||
|
|
JOIN system_project p ON p.tenant_id = d.tenant_id AND p.code = 'DEFAULT' AND p.deleted = 0
|
|||
|
|
SET d.project_id = p.id
|
|||
|
|
WHERE d.project_id IS NULL;
|
|||
|
|
|
|||
|
|
ALTER TABLE ops_device_trajectory MODIFY COLUMN project_id BIGINT NOT NULL COMMENT '项目编号';
|
|||
|
|
|
|||
|
|
ALTER TABLE ops_device_trajectory ADD INDEX idx_project_id (project_id);
|
|||
|
|
|
|||
|
|
-- -----------------------------------------------
|
|||
|
|
-- 14. ops_inspection_record
|
|||
|
|
-- -----------------------------------------------
|
|||
|
|
ALTER TABLE ops_inspection_record ADD COLUMN project_id BIGINT NULL COMMENT '项目编号';
|
|||
|
|
|
|||
|
|
UPDATE ops_inspection_record d
|
|||
|
|
JOIN system_project p ON p.tenant_id = d.tenant_id AND p.code = 'DEFAULT' AND p.deleted = 0
|
|||
|
|
SET d.project_id = p.id
|
|||
|
|
WHERE d.project_id IS NULL;
|
|||
|
|
|
|||
|
|
ALTER TABLE ops_inspection_record MODIFY COLUMN project_id BIGINT NOT NULL COMMENT '项目编号';
|
|||
|
|
|
|||
|
|
ALTER TABLE ops_inspection_record ADD INDEX idx_project_id (project_id);
|
|||
|
|
|
|||
|
|
-- -----------------------------------------------
|
|||
|
|
-- 15. ops_inspection_record_item
|
|||
|
|
-- -----------------------------------------------
|
|||
|
|
ALTER TABLE ops_inspection_record_item ADD COLUMN project_id BIGINT NULL COMMENT '项目编号';
|
|||
|
|
|
|||
|
|
UPDATE ops_inspection_record_item d
|
|||
|
|
JOIN system_project p ON p.tenant_id = d.tenant_id AND p.code = 'DEFAULT' AND p.deleted = 0
|
|||
|
|
SET d.project_id = p.id
|
|||
|
|
WHERE d.project_id IS NULL;
|
|||
|
|
|
|||
|
|
ALTER TABLE ops_inspection_record_item MODIFY COLUMN project_id BIGINT NOT NULL COMMENT '项目编号';
|
|||
|
|
|
|||
|
|
ALTER TABLE ops_inspection_record_item ADD INDEX idx_project_id (project_id);
|