1
This commit is contained in:
48
_sql/check_account_config_table.sql
Normal file
48
_sql/check_account_config_table.sql
Normal file
@@ -0,0 +1,48 @@
|
||||
-- Active: 1763990602551@@192.144.167.231@3306@autoaiworksys
|
||||
-- ============================================
|
||||
-- 检查 account_config 表的状态
|
||||
-- ============================================
|
||||
|
||||
-- 1. 检查表是否存在
|
||||
SELECT
|
||||
TABLE_NAME,
|
||||
TABLE_COMMENT,
|
||||
ENGINE,
|
||||
TABLE_ROWS,
|
||||
CREATE_TIME,
|
||||
UPDATE_TIME
|
||||
FROM INFORMATION_SCHEMA.TABLES
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'account_config';
|
||||
|
||||
-- 2. 查看表结构
|
||||
DESCRIBE account_config;
|
||||
|
||||
-- 或者使用:
|
||||
-- SHOW CREATE TABLE account_config;
|
||||
|
||||
-- 3. 查看表中的数据(应该是空的,因为这是配置表,需要手动创建记录)
|
||||
SELECT * FROM account_config;
|
||||
|
||||
-- 4. 查看 pla_account 表中的账号,看看有哪些账号可以创建配置
|
||||
SELECT
|
||||
id,
|
||||
sn_code,
|
||||
name,
|
||||
platform_type,
|
||||
login_name,
|
||||
is_enabled
|
||||
FROM pla_account
|
||||
WHERE is_delete = 0
|
||||
ORDER BY id;
|
||||
|
||||
-- 5. 如果需要为所有账号创建默认配置,可以执行以下 SQL:
|
||||
-- INSERT INTO account_config (account_id, platform_type, notes)
|
||||
-- SELECT
|
||||
-- id AS account_id,
|
||||
-- platform_type,
|
||||
-- '默认配置' AS notes
|
||||
-- FROM pla_account
|
||||
-- WHERE is_delete = 0
|
||||
-- AND id NOT IN (SELECT account_id FROM account_config);
|
||||
|
||||
36
_sql/create_default_account_config.sql
Normal file
36
_sql/create_default_account_config.sql
Normal file
@@ -0,0 +1,36 @@
|
||||
-- Active: 1763990602551@@192.144.167.231@3306@autoaiworksys
|
||||
-- ============================================
|
||||
-- 为 pla_account 表中的所有账号创建默认的 account_config 配置
|
||||
-- ============================================
|
||||
|
||||
-- 为所有启用的账号创建默认配置(如果配置不存在)
|
||||
INSERT INTO account_config (account_id, platform_type, notes, created_time, last_update_time)
|
||||
SELECT
|
||||
id AS account_id,
|
||||
platform_type,
|
||||
'默认配置' AS notes,
|
||||
NOW() AS created_time,
|
||||
NOW() AS last_update_time
|
||||
FROM pla_account
|
||||
WHERE is_delete = 0
|
||||
AND id NOT IN (SELECT account_id FROM account_config)
|
||||
ON DUPLICATE KEY UPDATE
|
||||
last_update_time = NOW();
|
||||
|
||||
-- 查看创建的结果
|
||||
SELECT
|
||||
ac.account_id,
|
||||
pa.name AS account_name,
|
||||
pa.sn_code,
|
||||
ac.platform_type,
|
||||
ac.platform_config,
|
||||
ac.auto_deliver_config,
|
||||
ac.auto_chat_config,
|
||||
ac.auto_active_config,
|
||||
ac.notes,
|
||||
ac.created_time,
|
||||
ac.last_update_time
|
||||
FROM account_config ac
|
||||
INNER JOIN pla_account pa ON ac.account_id = pa.id
|
||||
ORDER BY ac.account_id;
|
||||
|
||||
96
_sql/migrate_device_status_data.sql
Normal file
96
_sql/migrate_device_status_data.sql
Normal file
@@ -0,0 +1,96 @@
|
||||
-- Active: 1763990602551@@192.144.167.231@3306@autoaiworksys
|
||||
-- ============================================
|
||||
-- 数据迁移脚本:将 device_status 表中的 device_id 迁移到 pla_account 表
|
||||
-- 执行时间:2025-01-XX
|
||||
-- 说明:根据 sn_code 匹配,将 device_status.device_id 更新到 pla_account.device_id
|
||||
-- ============================================
|
||||
|
||||
-- ============================================
|
||||
-- 1. 查看 device_status 表中的数据(用于确认)
|
||||
-- ============================================
|
||||
SELECT
|
||||
sn_code,
|
||||
device_id,
|
||||
deviceName,
|
||||
isOnline,
|
||||
isLoggedIn,
|
||||
lastHeartbeatTime
|
||||
FROM device_status
|
||||
ORDER BY sn_code;
|
||||
|
||||
-- ============================================
|
||||
-- 2. 查看迁移前的 pla_account 数据(用于确认)
|
||||
-- ============================================
|
||||
SELECT
|
||||
id,
|
||||
sn_code,
|
||||
device_id,
|
||||
name,
|
||||
login_name,
|
||||
platform_type
|
||||
FROM pla_account
|
||||
ORDER BY sn_code;
|
||||
|
||||
-- ============================================
|
||||
-- 3. 执行数据迁移:将 device_status.device_id 更新到 pla_account.device_id
|
||||
-- ============================================
|
||||
-- 根据 sn_code 匹配,更新 pla_account 表的 device_id 字段
|
||||
UPDATE pla_account pa
|
||||
INNER JOIN device_status ds ON pa.sn_code = ds.sn_code
|
||||
SET pa.device_id = ds.device_id
|
||||
WHERE ds.device_id IS NOT NULL
|
||||
AND ds.device_id != ''
|
||||
AND (pa.device_id IS NULL OR pa.device_id = '');
|
||||
|
||||
-- ============================================
|
||||
-- 4. 查看迁移后的结果(用于验证)
|
||||
-- ============================================
|
||||
SELECT
|
||||
pa.id,
|
||||
pa.sn_code,
|
||||
pa.device_id,
|
||||
pa.name,
|
||||
pa.login_name,
|
||||
pa.platform_type,
|
||||
CASE
|
||||
WHEN pa.device_id IS NOT NULL AND pa.device_id != '' THEN '已迁移'
|
||||
ELSE '未迁移'
|
||||
END AS migration_status
|
||||
FROM pla_account pa
|
||||
WHERE pa.sn_code IN (SELECT sn_code FROM device_status)
|
||||
ORDER BY pa.sn_code;
|
||||
|
||||
-- ============================================
|
||||
-- 5. 统计迁移结果
|
||||
-- ============================================
|
||||
SELECT
|
||||
COUNT(*) AS total_device_status_records,
|
||||
SUM(CASE WHEN device_id IS NOT NULL AND device_id != '' THEN 1 ELSE 0 END) AS records_with_device_id
|
||||
FROM device_status;
|
||||
|
||||
SELECT
|
||||
COUNT(*) AS total_pla_account_records,
|
||||
SUM(CASE WHEN device_id IS NOT NULL AND device_id != '' THEN 1 ELSE 0 END) AS records_with_device_id_after_migration
|
||||
FROM pla_account
|
||||
WHERE sn_code IN (SELECT sn_code FROM device_status);
|
||||
|
||||
-- ============================================
|
||||
-- 注意事项
|
||||
-- ============================================
|
||||
-- 1. 此脚本会根据 sn_code 匹配 device_status 和 pla_account 表
|
||||
-- 2. 只会更新 device_id 为空或 NULL 的 pla_account 记录
|
||||
-- 3. 如果 pla_account 中已有 device_id,不会覆盖(如需强制覆盖,请修改 WHERE 条件)
|
||||
-- 4. 执行前建议先查看两个表的数据,确认匹配关系
|
||||
-- 5. 如果 device_status 表中没有对应的 sn_code,该 pla_account 记录的 device_id 将保持为空
|
||||
|
||||
-- ============================================
|
||||
-- 可选:如果需要强制覆盖已有的 device_id(谨慎操作!)
|
||||
-- ============================================
|
||||
-- 取消下面的注释,可以强制覆盖 pla_account 中已有的 device_id
|
||||
/*
|
||||
UPDATE pla_account pa
|
||||
INNER JOIN device_status ds ON pa.sn_code = ds.sn_code
|
||||
SET pa.device_id = ds.device_id
|
||||
WHERE ds.device_id IS NOT NULL AND ds.device_id != '';
|
||||
*/
|
||||
|
||||
25
_sql/migrate_device_status_data_simple.sql
Normal file
25
_sql/migrate_device_status_data_simple.sql
Normal file
@@ -0,0 +1,25 @@
|
||||
-- Active: 1763990602551@@192.144.167.231@3306@autoaiworksys
|
||||
-- ============================================
|
||||
-- 数据迁移脚本(简化版):将 device_status 表中的 device_id 迁移到 pla_account 表
|
||||
-- ============================================
|
||||
|
||||
-- 查看 device_status 表的数据
|
||||
SELECT sn_code, device_id FROM device_status;
|
||||
|
||||
-- 查看迁移前的 pla_account 数据
|
||||
SELECT id, sn_code, device_id, name FROM pla_account WHERE sn_code IN (SELECT sn_code FROM device_status);
|
||||
|
||||
-- 执行迁移:根据 sn_code 匹配,将 device_status.device_id 更新到 pla_account.device_id
|
||||
UPDATE pla_account pa
|
||||
INNER JOIN device_status ds ON pa.sn_code = ds.sn_code
|
||||
SET pa.device_id = ds.device_id
|
||||
WHERE ds.device_id IS NOT NULL
|
||||
AND ds.device_id != ''
|
||||
AND (pa.device_id IS NULL OR pa.device_id = '');
|
||||
|
||||
-- 查看迁移后的结果
|
||||
SELECT id, sn_code, device_id, name,
|
||||
CASE WHEN device_id IS NOT NULL AND device_id != '' THEN '已迁移' ELSE '未迁移' END AS status
|
||||
FROM pla_account
|
||||
WHERE sn_code IN (SELECT sn_code FROM device_status);
|
||||
|
||||
135
_sql/migrate_device_status_to_pla_account.sql
Normal file
135
_sql/migrate_device_status_to_pla_account.sql
Normal file
@@ -0,0 +1,135 @@
|
||||
-- ============================================
|
||||
-- 数据库迁移脚本:移除 device_status,迁移到 pla_account
|
||||
-- 执行时间:2025-01-XX
|
||||
-- 说明:
|
||||
-- 1. 为 pla_account 表添加 device_id 字段
|
||||
-- 2. 删除 device_status 表(如果存在)
|
||||
-- 3. 创建 account_config 表(账号配置表)
|
||||
-- ============================================
|
||||
|
||||
-- ============================================
|
||||
-- 1. 为 pla_account 表添加 device_id 字段
|
||||
-- ============================================
|
||||
SET @exist_device_id = (
|
||||
SELECT COUNT(*)
|
||||
FROM INFORMATION_SCHEMA.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'pla_account'
|
||||
AND COLUMN_NAME = 'device_id'
|
||||
);
|
||||
|
||||
SET @sql_device_id = IF(@exist_device_id = 0,
|
||||
'ALTER TABLE `pla_account`
|
||||
ADD COLUMN `device_id` VARCHAR(200) NULL DEFAULT '''' COMMENT ''设备ID''
|
||||
AFTER `sn_code`',
|
||||
'SELECT ''字段 device_id 已存在,跳过添加'' AS message'
|
||||
);
|
||||
|
||||
PREPARE stmt FROM @sql_device_id;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
|
||||
-- ============================================
|
||||
-- 2. 创建 account_config 表(如果不存在)
|
||||
-- ============================================
|
||||
CREATE TABLE IF NOT EXISTS `account_config` (
|
||||
`account_id` INT NOT NULL COMMENT '账号ID(关联 pla_account.id)',
|
||||
`platform_type` VARCHAR(50) NOT NULL DEFAULT 'boss' COMMENT '平台类型(boss- Boss直聘, liepin- 猎聘)',
|
||||
`platform_config` JSON NULL COMMENT '平台相关配置(JSON对象)',
|
||||
`auto_deliver_config` JSON NULL COMMENT '自动投递配置(JSON对象)',
|
||||
`auto_chat_config` JSON NULL COMMENT '自动沟通配置(JSON对象)',
|
||||
`auto_active_config` JSON NULL COMMENT '自动活跃配置(JSON对象)',
|
||||
`notes` TEXT NULL DEFAULT '' COMMENT '备注',
|
||||
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`account_id`),
|
||||
INDEX `idx_platform_type` (`platform_type`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='账号配置表';
|
||||
|
||||
-- 如果 MySQL 版本低于 5.7,不支持 JSON 类型,可以使用以下 SQL(将 JSON 改为 TEXT):
|
||||
/*
|
||||
CREATE TABLE IF NOT EXISTS `account_config` (
|
||||
`account_id` INT NOT NULL COMMENT '账号ID(关联 pla_account.id)',
|
||||
`platform_type` VARCHAR(50) NOT NULL DEFAULT 'boss' COMMENT '平台类型(boss- Boss直聘, liepin- 猎聘)',
|
||||
`platform_config` TEXT NULL COMMENT '平台相关配置(JSON对象)',
|
||||
`auto_deliver_config` TEXT NULL COMMENT '自动投递配置(JSON对象)',
|
||||
`auto_chat_config` TEXT NULL COMMENT '自动沟通配置(JSON对象)',
|
||||
`auto_active_config` TEXT NULL COMMENT '自动活跃配置(JSON对象)',
|
||||
`notes` TEXT NULL DEFAULT '' COMMENT '备注',
|
||||
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`account_id`),
|
||||
INDEX `idx_platform_type` (`platform_type`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='账号配置表';
|
||||
*/
|
||||
|
||||
-- ============================================
|
||||
-- 3. 可选:迁移 device_status 中的 device_id 到 pla_account
|
||||
-- ============================================
|
||||
-- 注意:此步骤只在 device_status 表存在且有数据时执行
|
||||
-- 如果 device_status 表已不存在,可以跳过此步骤
|
||||
|
||||
-- 检查 device_status 表是否存在
|
||||
SET @table_exists = (
|
||||
SELECT COUNT(*)
|
||||
FROM INFORMATION_SCHEMA.TABLES
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'device_status'
|
||||
);
|
||||
|
||||
-- 如果 device_status 表存在,尝试迁移 device_id 数据
|
||||
-- 注意:此迁移假设 device_status 使用 sn_code 作为主键,pla_account 也有 sn_code 字段
|
||||
-- 如果结构不同,请手动调整迁移 SQL
|
||||
/*
|
||||
SET @sql_migrate_device_id = IF(@table_exists > 0,
|
||||
'UPDATE `pla_account` pa
|
||||
INNER JOIN `device_status` ds ON pa.sn_code = ds.sn_code
|
||||
SET pa.device_id = ds.device_id
|
||||
WHERE pa.device_id IS NULL OR pa.device_id = ''''
|
||||
AND ds.device_id IS NOT NULL AND ds.device_id != ''''',
|
||||
'SELECT ''device_status 表不存在,跳过数据迁移'' AS message'
|
||||
);
|
||||
|
||||
PREPARE stmt FROM @sql_migrate_device_id;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
*/
|
||||
|
||||
-- ============================================
|
||||
-- 4. 删除 device_status 表(谨慎操作!)
|
||||
-- ============================================
|
||||
-- ⚠️ 警告:删除表会丢失所有数据,请确保已经备份或迁移了需要的数据
|
||||
-- 如果确定要删除 device_status 表,请取消下面 SQL 的注释
|
||||
|
||||
-- DROP TABLE IF EXISTS `device_status`;
|
||||
|
||||
-- 如果不想直接删除,可以重命名表作为备份:
|
||||
-- RENAME TABLE `device_status` TO `device_status_backup_202501XX`;
|
||||
|
||||
-- ============================================
|
||||
-- 注意事项
|
||||
-- ============================================
|
||||
-- 1. 执行前请先备份数据库
|
||||
-- 2. device_id 字段允许为 NULL,旧数据可能没有 device_id
|
||||
-- 3. account_config 表使用 account_id 作为主键,关联 pla_account.id
|
||||
-- 4. 如果 MySQL 版本低于 5.7,请使用 TEXT 类型替代 JSON 类型
|
||||
-- 5. device_status 表的删除操作是可选的,建议先重命名备份
|
||||
-- 6. 如果 device_status 表不存在,相关的 SQL 会自动跳过
|
||||
|
||||
-- ============================================
|
||||
-- 验证执行结果
|
||||
-- ============================================
|
||||
-- 执行以下 SQL 验证迁移结果:
|
||||
|
||||
-- 1. 检查 pla_account 表的 device_id 字段
|
||||
-- DESCRIBE pla_account;
|
||||
|
||||
-- 2. 检查 account_config 表是否创建成功
|
||||
-- DESCRIBE account_config;
|
||||
|
||||
-- 3. 检查 device_status 表是否还存在(如果已删除,此查询会报错)
|
||||
-- SELECT COUNT(*) FROM device_status;
|
||||
|
||||
-- 4. 查看已迁移 device_id 的账号数量
|
||||
-- SELECT COUNT(*) FROM pla_account WHERE device_id IS NOT NULL AND device_id != '';
|
||||
|
||||
61
_sql/migrate_device_status_to_pla_account_simple.sql
Normal file
61
_sql/migrate_device_status_to_pla_account_simple.sql
Normal file
@@ -0,0 +1,61 @@
|
||||
-- Active: 1763990602551@@192.144.167.231@3306@autoaiworksys
|
||||
-- ============================================
|
||||
-- 数据库迁移脚本(简化版):移除 device_status,迁移到 pla_account
|
||||
-- 执行时间:2025-01-XX
|
||||
-- 说明:简化版 SQL,直接执行 ALTER 和 CREATE 语句
|
||||
-- ============================================
|
||||
|
||||
-- 1. 为 pla_account 表添加 device_id 字段
|
||||
-- 注意:如果字段已存在会报错,请先检查字段是否存在
|
||||
-- 检查方法:DESCRIBE pla_account; 或 SHOW COLUMNS FROM pla_account LIKE 'device_id';
|
||||
ALTER TABLE `pla_account`
|
||||
ADD COLUMN `device_id` VARCHAR(200) NULL DEFAULT '' COMMENT '设备ID'
|
||||
AFTER `sn_code`;
|
||||
|
||||
-- 2. 创建 account_config 表
|
||||
CREATE TABLE IF NOT EXISTS `account_config` (
|
||||
`account_id` INT NOT NULL COMMENT '账号ID(关联 pla_account.id)',
|
||||
`platform_type` VARCHAR(50) NOT NULL DEFAULT 'boss' COMMENT '平台类型(boss- Boss直聘, liepin- 猎聘)',
|
||||
`platform_config` JSON NULL COMMENT '平台相关配置(JSON对象)',
|
||||
`auto_deliver_config` JSON NULL COMMENT '自动投递配置(JSON对象)',
|
||||
`auto_chat_config` JSON NULL COMMENT '自动沟通配置(JSON对象)',
|
||||
`auto_active_config` JSON NULL COMMENT '自动活跃配置(JSON对象)',
|
||||
`notes` TEXT NULL COMMENT '备注',
|
||||
`created_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`last_update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`account_id`),
|
||||
INDEX `idx_platform_type` (`platform_type`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='账号配置表';
|
||||
|
||||
-- 如果 MySQL 版本低于 5.7,不支持 JSON 类型,请使用以下 SQL(将 JSON 改为 TEXT):
|
||||
/*
|
||||
CREATE TABLE IF NOT EXISTS `account_config` (
|
||||
`account_id` INT NOT NULL COMMENT '账号ID(关联 pla_account.id)',
|
||||
`platform_type` VARCHAR(50) NOT NULL DEFAULT 'boss' COMMENT '平台类型(boss- Boss直聘, liepin- 猎聘)',
|
||||
`platform_config` TEXT NULL COMMENT '平台相关配置(JSON对象)',
|
||||
`auto_deliver_config` TEXT NULL COMMENT '自动投递配置(JSON对象)',
|
||||
`auto_chat_config` TEXT NULL COMMENT '自动沟通配置(JSON对象)',
|
||||
`auto_active_config` TEXT NULL COMMENT '自动活跃配置(JSON对象)',
|
||||
`notes` TEXT NULL DEFAULT '' COMMENT '备注',
|
||||
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`account_id`),
|
||||
INDEX `idx_platform_type` (`platform_type`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='账号配置表';
|
||||
*/
|
||||
|
||||
-- 3. 可选:删除 device_status 表(谨慎操作!)
|
||||
-- ⚠️ 警告:删除表会丢失所有数据,请确保已经备份或迁移了需要的数据
|
||||
-- DROP TABLE IF EXISTS `device_status`;
|
||||
|
||||
-- 或者重命名表作为备份:
|
||||
-- RENAME TABLE `device_status` TO `device_status_backup_202501XX`;
|
||||
|
||||
-- ============================================
|
||||
-- 注意事项
|
||||
-- ============================================
|
||||
-- 1. 执行前请先备份数据库
|
||||
-- 2. 如果字段已存在,使用 IF NOT EXISTS 可以避免报错(MySQL 8.0.19+)
|
||||
-- 3. 如果 MySQL 版本较低,请手动检查字段是否存在再执行
|
||||
-- 4. device_status 表的删除操作是可选的,建议先重命名备份
|
||||
|
||||
Reference in New Issue
Block a user