75 lines
1.5 KiB
Go
75 lines
1.5 KiB
Go
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")
|
|
}
|