Files
backend_jupiter/cmds/jobs/parquet_backup.go
2026-05-25 11:45:56 +05:30

91 lines
2.3 KiB
Go
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package main
import (
"os"
"path/filepath"
"nearle/db"
"nearle/internal/backup"
"nearle/utils"
"github.com/joho/godotenv"
)
func main() {
// 👇 Load .env
if err := godotenv.Load(".env"); err != nil {
utils.Logger.Fatalf("❌ Failed to load .env file: %v", err)
}
utils.Logger.Infof("DB_USER = %s", os.Getenv("DB_USER"))
utils.Logger.Infof("DB_NAME = %s", os.Getenv("DB_NAME"))
// 🔌 Connect DB
db.Connect()
sqlDB, err := db.DB.DB()
if err != nil {
utils.Logger.Fatal(err)
}
// ================================
// 1⃣ deliverylogs
// ================================
utils.Info("▶ Backing up deliverylogs...")
deliveryLogsFile, err := backup.BackupDeliveryLogs(sqlDB)
if err != nil {
utils.Logger.Fatalf("❌ deliverylogs backup failed: %v", err)
}
utils.Info("☁️ Uploading deliverylogs parquet...")
url, err := backup.UploadParquetToSpaces(
deliveryLogsFile,
"parquet/deliverylogs/"+filepath.Base(deliveryLogsFile),
)
if err != nil {
utils.Logger.Fatalf("❌ deliverylogs upload failed: %v", err)
}
utils.Logger.Infof("✅ Uploaded: %s", url)
// ================================
// 2⃣ deliveries
// ================================
utils.Info("▶ Backing up deliveries...")
deliveriesFile, err := backup.BackupDeliveries(sqlDB)
if err != nil {
utils.Logger.Fatalf("❌ deliveries backup failed: %v", err)
}
utils.Info("☁️ Uploading deliveries parquet...")
url, err = backup.UploadParquetToSpaces(
deliveriesFile,
"parquet/deliveries/"+filepath.Base(deliveriesFile),
)
if err != nil {
utils.Logger.Fatalf("❌ deliveries upload failed: %v", err)
}
utils.Logger.Infof("✅ Uploaded: %s", url)
// ================================
// 3⃣ orders ✅ NEW
// ================================
utils.Info("▶ Backing up orders...")
ordersFile, err := backup.BackupOrders(sqlDB)
if err != nil {
utils.Logger.Fatalf("❌ orders backup failed: %v", err)
}
utils.Info("☁️ Uploading orders parquet...")
url, err = backup.UploadParquetToSpaces(
ordersFile,
"parquet/orders/"+filepath.Base(ordersFile),
)
if err != nil {
utils.Logger.Fatalf("❌ orders upload failed: %v", err)
}
utils.Logger.Infof("✅ Uploaded: %s", url)
utils.Info("🎉 Parquet backup + S3 upload completed successfully")
}