文件夹挂载逻辑变动

This commit is contained in:
2026-07-30 00:18:06 +08:00
parent 826ce399e7
commit defc9d00d3
5 changed files with 115 additions and 86 deletions
+1 -46
View File
@@ -17,17 +17,7 @@ import (
var DB *sql.DB
// ============================================================
// 数据库版本常量
// ============================================================
const (
SchemaVersion = "v2" // 当前数据库 Schema 版本
)
// ============================================================
// 数据模型
// ============================================================
const SchemaVersion = "v2"
type GlobalConfig struct {
ID int `json:"id"`
@@ -61,10 +51,6 @@ type User struct {
CreatedAt string `json:"createdAt"`
}
// ============================================================
// 数据库初始化
// ============================================================
func InitDB() error {
// 确保 data 目录存在
if err := os.MkdirAll("./data", 0755); err != nil {
@@ -94,12 +80,7 @@ func InitDB() error {
return nil
}
// ============================================================
// 建表
// ============================================================
func createTables() error {
// 用户表
_, err := DB.Exec(`
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
@@ -113,7 +94,6 @@ func createTables() error {
return err
}
// 全局配置表
_, err = DB.Exec(`
CREATE TABLE IF NOT EXISTS global_config (
id INTEGER PRIMARY KEY CHECK (id = 1),
@@ -135,7 +115,6 @@ func createTables() error {
return err
}
// 隧道表
_, err = DB.Exec(`
CREATE TABLE IF NOT EXISTS proxies (
id INTEGER PRIMARY KEY AUTOINCREMENT,
@@ -153,7 +132,6 @@ func createTables() error {
return err
}
// 应用配置表
_, err = DB.Exec(`
CREATE TABLE IF NOT EXISTS app_config (
key TEXT PRIMARY KEY,
@@ -165,7 +143,6 @@ func createTables() error {
return err
}
// 初始化默认配置
var count int
DB.QueryRow("SELECT COUNT(*) FROM global_config").Scan(&count)
if count == 0 {
@@ -185,10 +162,6 @@ func createTables() error {
return nil
}
// ============================================================
// 迁移引擎
// ============================================================
func getCurrentSchemaVersion() string {
var version string
err := DB.QueryRow("SELECT value FROM app_config WHERE key = 'schema_version'").Scan(&version)
@@ -272,7 +245,6 @@ func runMigrations() error {
log.Printf("📌 当前数据库 Schema: %s, 目标版本: %s", currentVer, targetVer)
if currentVer == targetVer {
// 检查数据库是否包含有效数据
var userCount int
err := DB.QueryRow("SELECT COUNT(*) FROM users").Scan(&userCount)
if err != nil || userCount == 0 {
@@ -302,7 +274,6 @@ func runMigrations() error {
if currentSchema == nil || schemaVersionsEqual(currentSchema, targetSchema) {
log.Println(" 迁移类型: 轻量复制(Schema 无变更)")
// 验证数据库是否有效
var userCount int
err := DB.QueryRow("SELECT COUNT(*) FROM users").Scan(&userCount)
if err != nil || userCount == 0 {
@@ -448,10 +419,6 @@ func buildInsertSQL(oldTable, newTable string, oldDef, newDef *SchemaVersionDef)
), nil
}
// ============================================================
// JWT 密钥管理
// ============================================================
func ensureJwtSecret() error {
var value string
err := DB.QueryRow("SELECT value FROM app_config WHERE key = 'jwt_secret'").Scan(&value)
@@ -484,10 +451,6 @@ func GetJwtSecret() (string, error) {
return secret, nil
}
// ============================================================
// 全局配置 CRUD
// ============================================================
func GetGlobalConfig() (*GlobalConfig, error) {
var cfg GlobalConfig
err := DB.QueryRow(`
@@ -523,10 +486,6 @@ func UpdateGlobalConfig(cfg *GlobalConfig) error {
return err
}
// ============================================================
// 隧道 CRUD
// ============================================================
func GetProxies() ([]Proxy, error) {
rows, err := DB.Query(`
SELECT id, name, type, local_ip, local_port, remote_port, enabled
@@ -589,10 +548,6 @@ func DeleteProxy(id int) error {
return err
}
// ============================================================
// 用户 CRUD
// ============================================================
func GetUserByUsername(username string) (*User, error) {
var u User
err := DB.QueryRow(`