Files
sundynix-pets/pets-be/cmd/seedbreeds/main.go
T
Blizzard 9d7cf720a5
ci-cd / verify (push) Successful in 1m59s
ci-cd / deploy (push) Skipped
feat: add multi-source breed encyclopedia and two-hour refresh sessions
2026-10-05 13:38:24 +08:00

37 lines
1.0 KiB
Go

// seedbreeds imports the embedded CKU breed catalog without overwriting administrator edits.
package main
import (
"github.com/sundynix/pets-be/internal/breeds"
"github.com/sundynix/pets-be/internal/config"
"github.com/sundynix/pets-be/internal/database"
"github.com/sundynix/pets-be/internal/model"
"log"
)
func main() {
cfg, err := config.Load()
if err != nil {
log.Fatal(err)
}
db, err := database.Open(cfg.Postgres, true)
if err != nil {
log.Fatal(err)
}
// Only the schema needed by these features, leaving unrelated application records intact.
if err := db.AutoMigrate(&model.Breed{}, &model.BreedReference{}, &model.Pet{}, &model.RefreshSession{}); err != nil {
log.Fatal(err)
}
added, err := breeds.Seed(db)
if err != nil {
log.Fatal(err)
}
var total int64
if err := db.Model(&model.Breed{}).Count(&total).Error; err != nil {
log.Fatal(err)
}
var sources int64
db.Model(&model.BreedReference{}).Count(&sources)
log.Printf("breed catalog imported: added=%d total=%d references=%d", added, total, sources)
}