package main import ( "database/sql" "fmt" "log" "os" _ "github.com/go-sql-driver/mysql" ) func main() { // Database connection parameters host := os.Getenv("DB_HOST") if host == "" { host = "localhost" } user := os.Getenv("DB_USER") if user == "" { user = "root" } password := os.Getenv("DB_PASSWORD") if password == "" { password = "" } dbName := os.Getenv("DB_NAME") if dbName == "" { dbName = "crm_db" } port := os.Getenv("DB_PORT") if port == "" { port = "3306" } dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=True&loc=Local", user, password, host, port, dbName) db, err := sql.Open("mysql", dsn) if err != nil { log.Fatal("Failed to connect to database:", err) } defer db.Close() // Check if column exists var columnExists int err = db.QueryRow(` SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = ? AND TABLE_NAME = 'trial_periods' AND COLUMN_NAME = 'intended_product' `, dbName).Scan(&columnExists) if err != nil { log.Fatal("Failed to check column existence:", err) } if columnExists > 0 { log.Println("✅ Column 'intended_product' already exists in trial_periods table") return } // Add the intended_product column _, err = db.Exec(` ALTER TABLE trial_periods ADD COLUMN intended_product VARCHAR(255) DEFAULT '' AFTER source `) if err != nil { log.Fatal("Failed to add intended_product column:", err) } log.Println("✅ Successfully added 'intended_product' column to trial_periods table") }