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:
+1
-1
@@ -131,7 +131,7 @@ deploy_docker() {
|
|||||||
warn ".env 文件不存在,创建示例文件..."
|
warn ".env 文件不存在,创建示例文件..."
|
||||||
cat > .env <<EOF
|
cat > .env <<EOF
|
||||||
# 数据库配置
|
# 数据库配置
|
||||||
DB_URL=jdbc:mysql://mysql:3306/polyhermes?useSSL=false&serverTimezone=UTC&characterEncoding=utf8mb4
|
DB_URL=jdbc:mysql://mysql:3306/polyhermes?useSSL=false&serverTimezone=UTC&characterEncoding=utf8&allowPublicKeyRetrieval=true
|
||||||
DB_USERNAME=root
|
DB_USERNAME=root
|
||||||
DB_PASSWORD=your_password_here
|
DB_PASSWORD=your_password_here
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ services:
|
|||||||
- "${SERVER_PORT:-8000}:8000"
|
- "${SERVER_PORT:-8000}:8000"
|
||||||
environment:
|
environment:
|
||||||
- SPRING_PROFILES_ACTIVE=${SPRING_PROFILES_ACTIVE:-prod}
|
- SPRING_PROFILES_ACTIVE=${SPRING_PROFILES_ACTIVE:-prod}
|
||||||
- DB_URL=${DB_URL:-jdbc:mysql://mysql:3306/polyhermes?useSSL=false&serverTimezone=UTC&characterEncoding=utf8mb4}
|
- DB_URL=${DB_URL:-jdbc:mysql://mysql:3306/polyhermes?useSSL=false&serverTimezone=UTC&characterEncoding=utf8&allowPublicKeyRetrieval=true}
|
||||||
- DB_USERNAME=${DB_USERNAME:-root}
|
- DB_USERNAME=${DB_USERNAME:-root}
|
||||||
- DB_PASSWORD=${DB_PASSWORD:-}
|
- DB_PASSWORD=${DB_PASSWORD:-}
|
||||||
- SERVER_PORT=8000
|
- SERVER_PORT=8000
|
||||||
|
|||||||
@@ -209,3 +209,23 @@ CREATE TABLE IF NOT EXISTS users (
|
|||||||
INDEX idx_username (username),
|
INDEX idx_username (username),
|
||||||
INDEX idx_is_default (is_default)
|
INDEX idx_is_default (is_default)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表(JWT登录鉴权)';
|
) 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 = '钱包账户表';
|
|
||||||
|
|
||||||
@@ -45,7 +45,7 @@ create_env_file() {
|
|||||||
warn ".env 文件不存在,创建示例文件..."
|
warn ".env 文件不存在,创建示例文件..."
|
||||||
cat > .env <<EOF
|
cat > .env <<EOF
|
||||||
# 数据库配置
|
# 数据库配置
|
||||||
DB_URL=jdbc:mysql://mysql:3306/polyhermes?useSSL=false&serverTimezone=UTC&characterEncoding=utf8mb4
|
DB_URL=jdbc:mysql://mysql:3306/polyhermes?useSSL=false&serverTimezone=UTC&characterEncoding=utf8&allowPublicKeyRetrieval=true
|
||||||
DB_USERNAME=root
|
DB_USERNAME=root
|
||||||
DB_PASSWORD=your_password_here
|
DB_PASSWORD=your_password_here
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -10,7 +10,7 @@ services:
|
|||||||
- "${SERVER_PORT:-80}:80"
|
- "${SERVER_PORT:-80}:80"
|
||||||
environment:
|
environment:
|
||||||
- SPRING_PROFILES_ACTIVE=${SPRING_PROFILES_ACTIVE:-prod}
|
- SPRING_PROFILES_ACTIVE=${SPRING_PROFILES_ACTIVE:-prod}
|
||||||
- DB_URL=${DB_URL:-jdbc:mysql://mysql:3306/polyhermes?useSSL=false&serverTimezone=UTC&characterEncoding=utf8mb4}
|
- DB_URL=${DB_URL:-jdbc:mysql://mysql:3306/polyhermes?useSSL=false&serverTimezone=UTC&characterEncoding=utf8&allowPublicKeyRetrieval=true}
|
||||||
- DB_USERNAME=${DB_USERNAME:-root}
|
- DB_USERNAME=${DB_USERNAME:-root}
|
||||||
- DB_PASSWORD=${DB_PASSWORD:-}
|
- DB_PASSWORD=${DB_PASSWORD:-}
|
||||||
- SERVER_PORT=8000
|
- SERVER_PORT=8000
|
||||||
|
|||||||
+3
-3
@@ -41,7 +41,7 @@
|
|||||||
```bash
|
```bash
|
||||||
# 创建 .env 文件
|
# 创建 .env 文件
|
||||||
cat > .env <<EOF
|
cat > .env <<EOF
|
||||||
DB_URL=jdbc:mysql://mysql:3306/polyhermes?useSSL=false&serverTimezone=UTC&characterEncoding=utf8mb4
|
DB_URL=jdbc:mysql://mysql:3306/polyhermes?useSSL=false&serverTimezone=UTC&characterEncoding=utf8&allowPublicKeyRetrieval=true
|
||||||
DB_USERNAME=root
|
DB_USERNAME=root
|
||||||
DB_PASSWORD=your_password_here
|
DB_PASSWORD=your_password_here
|
||||||
SPRING_PROFILES_ACTIVE=prod
|
SPRING_PROFILES_ACTIVE=prod
|
||||||
@@ -180,7 +180,7 @@ cd backend
|
|||||||
```bash
|
```bash
|
||||||
# 创建 .env 文件
|
# 创建 .env 文件
|
||||||
cat > .env <<EOF
|
cat > .env <<EOF
|
||||||
DB_URL=jdbc:mysql://mysql:3306/polyhermes?useSSL=false&serverTimezone=UTC&characterEncoding=utf8mb4
|
DB_URL=jdbc:mysql://mysql:3306/polyhermes?useSSL=false&serverTimezone=UTC&characterEncoding=utf8&allowPublicKeyRetrieval=true
|
||||||
DB_USERNAME=root
|
DB_USERNAME=root
|
||||||
DB_PASSWORD=your_password_here
|
DB_PASSWORD=your_password_here
|
||||||
SPRING_PROFILES_ACTIVE=prod
|
SPRING_PROFILES_ACTIVE=prod
|
||||||
@@ -213,7 +213,7 @@ docker run -d \
|
|||||||
--name polyhermes-backend \
|
--name polyhermes-backend \
|
||||||
-p 8000:8000 \
|
-p 8000:8000 \
|
||||||
-e SPRING_PROFILES_ACTIVE=prod \
|
-e SPRING_PROFILES_ACTIVE=prod \
|
||||||
-e DB_URL=jdbc:mysql://host.docker.internal:3306/polyhermes?useSSL=false \
|
-e DB_URL=jdbc:mysql://host.docker.internal:3306/polyhermes?useSSL=false&allowPublicKeyRetrieval=true \
|
||||||
-e DB_USERNAME=root \
|
-e DB_USERNAME=root \
|
||||||
-e DB_PASSWORD=your_password \
|
-e DB_PASSWORD=your_password \
|
||||||
-e JWT_SECRET=your-jwt-secret \
|
-e JWT_SECRET=your-jwt-secret \
|
||||||
|
|||||||
Reference in New Issue
Block a user