package main import ( "database/sql" "fmt" "io/ioutil" "log" "strings" "github.com/niangaodev/art-code/config" ) func main() { // 初始化数据库连接 config.InitDB() db := config.DB defer config.CloseDB() // 读取SQL文件 sqlFile := "scripts/create_inquiries_tables.sql" content, err := ioutil.ReadFile(sqlFile) if err != nil { log.Fatalf("Error reading SQL file: %v", err) } // 分割SQL语句 statements := strings.Split(string(content), ";") // 执行每一条SQL语句 for _, stmt := range statements { stmt = strings.TrimSpace(stmt) if stmt == "" { continue } _, err := db.Exec(stmt) if err != nil { // 忽略"表已存在"的错误(虽然我们用了IF NOT EXISTS,但为了保险) if !strings.Contains(err.Error(), "already exists") { log.Printf("Error executing statement: %s\nError: %v", stmt, err) } } else { // 只打印前50个字符 displayStmt := stmt if len(displayStmt) > 50 { displayStmt = displayStmt[:50] + "..." } fmt.Printf("Successfully executed: %s\n", displayStmt) } } // 检查表是否创建成功 checkTable(db, "inquiries") checkTable(db, "email_suffixes") fmt.Println("Inquiries tables migration completed successfully!") } func checkTable(db *sql.DB, tableName string) { var name string err := db.QueryRow("SHOW TABLES LIKE ?", tableName).Scan(&name) if err != nil { if err == sql.ErrNoRows { fmt.Printf("Table %s does NOT exist!\n", tableName) } else { fmt.Printf("Error checking table %s: %v\n", tableName, err) } } else { fmt.Printf("Table %s exists.\n", tableName) } }