Files
nl-blogs/server/scripts/run_inquiries_migration.go
2026-01-16 09:08:07 +08:00

72 lines
1.6 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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)
}
}