fix: 修复 MySQL 连接配置并合并数据库迁移文件
- 修复 MySQL 连接配置 - 添加 allowPublicKeyRetrieval=true 参数(解决 Public Key Retrieval 错误) - 将 characterEncoding=utf8mb4 改为 utf8(兼容性修复) - 更新所有配置文件:docker-compose.yml, deploy.sh, docs/DEPLOYMENT.md - 合并数据库迁移文件 - 将 V1, V2, V3 迁移文件合并为一个 V1__init_database.sql - 删除 V2__create_proxy_config_table.sql - 删除 V3__rename_copy_trading_accounts_to_wallet_accounts.sql - 新的 V1 包含所有表结构(11 个表)
This commit is contained in:
@@ -209,3 +209,23 @@ CREATE TABLE IF NOT EXISTS users (
|
||||
INDEX idx_username (username),
|
||||
INDEX idx_is_default (is_default)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表(JWT登录鉴权)';
|
||||
|
||||
-- ============================================
|
||||
-- 11. 创建代理配置表
|
||||
-- ============================================
|
||||
CREATE TABLE IF NOT EXISTS proxy_config (
|
||||
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
||||
type VARCHAR(20) NOT NULL COMMENT '代理类型:HTTP, CLASH, SS',
|
||||
enabled BOOLEAN NOT NULL DEFAULT FALSE COMMENT '是否启用',
|
||||
host VARCHAR(255) NULL COMMENT '代理主机(HTTP代理)',
|
||||
port INT NULL COMMENT '代理端口(HTTP代理)',
|
||||
username VARCHAR(100) NULL COMMENT '代理用户名(HTTP代理,可选)',
|
||||
password VARCHAR(255) NULL COMMENT '代理密码(HTTP代理,可选,BCrypt加密)',
|
||||
subscription_url VARCHAR(500) NULL COMMENT '订阅链接(Clash/SS代理)',
|
||||
subscription_config TEXT NULL COMMENT '订阅配置内容(Clash/SS代理,JSON格式)',
|
||||
last_subscription_update BIGINT NULL COMMENT '最后订阅更新时间(毫秒时间戳)',
|
||||
created_at BIGINT NOT NULL COMMENT '创建时间(毫秒时间戳)',
|
||||
updated_at BIGINT NOT NULL COMMENT '更新时间(毫秒时间戳)',
|
||||
INDEX idx_type (type),
|
||||
INDEX idx_enabled (enabled)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='代理配置表';
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
-- ============================================
|
||||
-- 创建代理配置表
|
||||
-- ============================================
|
||||
CREATE TABLE IF NOT EXISTS proxy_config (
|
||||
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
||||
type VARCHAR(20) NOT NULL COMMENT '代理类型:HTTP, CLASH, SS',
|
||||
enabled BOOLEAN NOT NULL DEFAULT FALSE COMMENT '是否启用',
|
||||
host VARCHAR(255) NULL COMMENT '代理主机(HTTP代理)',
|
||||
port INT NULL COMMENT '代理端口(HTTP代理)',
|
||||
username VARCHAR(100) NULL COMMENT '代理用户名(HTTP代理,可选)',
|
||||
password VARCHAR(255) NULL COMMENT '代理密码(HTTP代理,可选,BCrypt加密)',
|
||||
subscription_url VARCHAR(500) NULL COMMENT '订阅链接(Clash/SS代理)',
|
||||
subscription_config TEXT NULL COMMENT '订阅配置内容(Clash/SS代理,JSON格式)',
|
||||
last_subscription_update BIGINT NULL COMMENT '最后订阅更新时间(毫秒时间戳)',
|
||||
created_at BIGINT NOT NULL COMMENT '创建时间(毫秒时间戳)',
|
||||
updated_at BIGINT NOT NULL COMMENT '更新时间(毫秒时间戳)',
|
||||
INDEX idx_type (type),
|
||||
INDEX idx_enabled (enabled)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='代理配置表';
|
||||
|
||||
-36
@@ -1,36 +0,0 @@
|
||||
-- ============================================
|
||||
-- 重命名账户表:copy_trading_accounts -> wallet_accounts
|
||||
-- ============================================
|
||||
|
||||
-- 检查表是否存在,如果存在则重命名
|
||||
-- 注意:此迁移脚本假设表已经存在(从 V1 迁移创建)
|
||||
|
||||
-- 1. 查找外键约束名称并删除
|
||||
SET @fk_name = NULL;
|
||||
SELECT CONSTRAINT_NAME INTO @fk_name
|
||||
FROM information_schema.KEY_COLUMN_USAGE
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'copy_trading'
|
||||
AND COLUMN_NAME = 'account_id'
|
||||
AND REFERENCED_TABLE_NAME = 'copy_trading_accounts'
|
||||
LIMIT 1;
|
||||
|
||||
-- 2. 如果找到外键,删除它
|
||||
SET @drop_fk_sql = IF(@fk_name IS NOT NULL,
|
||||
CONCAT('ALTER TABLE copy_trading DROP FOREIGN KEY `', @fk_name, '`'),
|
||||
'SELECT 1');
|
||||
PREPARE stmt FROM @drop_fk_sql;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
|
||||
-- 3. 重命名表
|
||||
RENAME TABLE copy_trading_accounts TO wallet_accounts;
|
||||
|
||||
-- 4. 重新添加外键约束
|
||||
ALTER TABLE copy_trading
|
||||
ADD CONSTRAINT fk_copy_trading_account_id
|
||||
FOREIGN KEY (account_id) REFERENCES wallet_accounts(id) ON DELETE CASCADE;
|
||||
|
||||
-- 5. 更新表注释
|
||||
ALTER TABLE wallet_accounts COMMENT = '钱包账户表';
|
||||
|
||||
Reference in New Issue
Block a user