This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"flag"
|
||||
"log"
|
||||
"os"
|
||||
|
||||
_ "github.com/go-sql-driver/mysql"
|
||||
"github.com/perfect-panel/server/internal/config"
|
||||
"github.com/perfect-panel/server/pkg/conf"
|
||||
"github.com/perfect-panel/server/pkg/orm"
|
||||
)
|
||||
|
||||
var configFile string
|
||||
|
||||
func init() {
|
||||
flag.StringVar(&configFile, "config", "configs/ppanel.yaml", "config file path")
|
||||
}
|
||||
|
||||
func main() {
|
||||
flag.Parse()
|
||||
|
||||
var c config.Config
|
||||
conf.MustLoad(configFile, &c)
|
||||
|
||||
// Construct DSN
|
||||
m := orm.Mysql{Config: c.MySQL}
|
||||
dsn := m.Dsn()
|
||||
|
||||
log.Println("Connecting to database...")
|
||||
db, err := sql.Open("mysql", dsn+"&multiStatements=true")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
defer db.Close()
|
||||
|
||||
if err := db.Ping(); err != nil {
|
||||
log.Fatalf("Ping failed: %v", err)
|
||||
}
|
||||
|
||||
// 1. Check Version
|
||||
var version string
|
||||
if err := db.QueryRow("SELECT version()").Scan(&version); err != nil {
|
||||
log.Fatalf("Failed to select version: %v", err)
|
||||
}
|
||||
log.Printf("MySQL Version: %s", version)
|
||||
|
||||
// 2. Read SQL file directly to ensure we are testing what's on disk
|
||||
sqlBytes, err := os.ReadFile("initialize/migrate/database/02118_traffic_log_idx.up.sql")
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to read SQL file: %v", err)
|
||||
}
|
||||
sqlStmt := string(sqlBytes)
|
||||
|
||||
// 3. Test SQL
|
||||
log.Printf("Testing SQL from file:\n%s", sqlStmt)
|
||||
if _, err := db.Exec(sqlStmt); err != nil {
|
||||
log.Printf("SQL Execution Failed: %v", err)
|
||||
} else {
|
||||
log.Println("SQL Execution Success")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user