Files
nl-blogs/server/scripts/run_inquiries_migration.go

72 lines
1.6 KiB
Go
Raw Normal View History

2026-01-16 09:08:07 +08:00
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)
}
}