refactor(database): move database initialization functions to single file

Consolidate InitFrpcDatabase and InitUserDatabase functions into database.go for better code organization and maintainability. Remove duplicate code from frpc.go.
This commit is contained in:
2026-02-27 21:16:27 +08:00
parent 4c041ee922
commit 6947577377
2 changed files with 63 additions and 57 deletions
+63 -23
View File
@@ -19,29 +19,8 @@ type User struct {
} }
func InitDatabase(dbPath string) error { func InitDatabase(dbPath string) error {
var err error InitUserDatabase(dbPath)
db, err = sql.Open("sqlite", dbPath) InitFrpcDatabase(dbPath)
if err != nil {
return fmt.Errorf("failed to open database: %w", err)
}
if err = db.Ping(); err != nil {
return fmt.Errorf("failed to ping database: %w", err)
}
createTableSQL := `
CREATE TABLE IF NOT EXISTS userLogin (
userID INTEGER PRIMARY KEY AUTOINCREMENT,
username TEXT UNIQUE NOT NULL,
passwd TEXT NOT NULL,
type TEXT NOT NULL DEFAULT 'visitor'
);
`
_, err = db.Exec(createTableSQL)
if err != nil {
return fmt.Errorf("failed to create table: %w", err)
}
return nil return nil
} }
@@ -244,3 +223,64 @@ func GetAllUsers() ([]User, error) {
return users, nil return users, nil
} }
func InitFrpcDatabase(dbPath string) error {
var err error
frpcDB, err = sql.Open("sqlite", dbPath)
if err != nil {
return fmt.Errorf("failed to open frpc database: %w", err)
}
if err = frpcDB.Ping(); err != nil {
return fmt.Errorf("failed to ping frpc database: %w", err)
}
createTableSQL := `
CREATE TABLE IF NOT EXISTS frpcInstances (
id INTEGER PRIMARY KEY AUTOINCREMENT,
userID INTEGER NOT NULL,
name TEXT NOT NULL,
serverAddr TEXT NOT NULL,
serverPort TEXT NOT NULL,
auth_method TEXT NOT NULL,
bootAtStart INTEGER NOT NULL DEFAULT 0,
runUser TEXT NOT NULL DEFAULT 'root',
configPath TEXT NOT NULL,
createdAt TEXT NOT NULL,
UNIQUE(userID, name)
);
`
_, err = frpcDB.Exec(createTableSQL)
if err != nil {
return fmt.Errorf("failed to create frpcInstances table: %w", err)
}
return nil
}
func InitUserDatabase(dbPath string) error {
var err error
db, err = sql.Open("sqlite", dbPath)
if err != nil {
return fmt.Errorf("failed to open database: %w", err)
}
if err = db.Ping(); err != nil {
return fmt.Errorf("failed to ping database: %w", err)
}
createTableSQL := `
CREATE TABLE IF NOT EXISTS userLogin (
userID INTEGER PRIMARY KEY AUTOINCREMENT,
username TEXT UNIQUE NOT NULL,
passwd TEXT NOT NULL,
type TEXT NOT NULL DEFAULT 'visitor'
);
`
_, err = db.Exec(createTableSQL)
if err != nil {
return fmt.Errorf("failed to create table: %w", err)
}
return nil
}
-34
View File
@@ -49,40 +49,6 @@ type FrpcInstance struct {
var frpcDB *sql.DB var frpcDB *sql.DB
func InitFrpcDatabase(dbPath string) error {
var err error
frpcDB, err = sql.Open("sqlite", dbPath)
if err != nil {
return fmt.Errorf("failed to open frpc database: %w", err)
}
if err = frpcDB.Ping(); err != nil {
return fmt.Errorf("failed to ping frpc database: %w", err)
}
createTableSQL := `
CREATE TABLE IF NOT EXISTS frpcInstances (
id INTEGER PRIMARY KEY AUTOINCREMENT,
userID INTEGER NOT NULL,
name TEXT NOT NULL,
serverAddr TEXT NOT NULL,
serverPort TEXT NOT NULL,
auth_method TEXT NOT NULL,
bootAtStart INTEGER NOT NULL DEFAULT 0,
runUser TEXT NOT NULL DEFAULT 'root',
configPath TEXT NOT NULL,
createdAt TEXT NOT NULL,
UNIQUE(userID, name)
);
`
_, err = frpcDB.Exec(createTableSQL)
if err != nil {
return fmt.Errorf("failed to create frpcInstances table: %w", err)
}
return nil
}
func CloseFrpcDatabase() error { func CloseFrpcDatabase() error {
if frpcDB != nil { if frpcDB != nil {
return frpcDB.Close() return frpcDB.Close()