add methods in Repository and Model for importing data
This commit is contained in:
@@ -3,6 +3,9 @@ package cmd
|
||||
import (
|
||||
"kontor-api-gin/internal/api"
|
||||
"kontor-api-gin/internal/config"
|
||||
"kontor-api-gin/internal/models"
|
||||
"kontor-api-gin/internal/repository"
|
||||
"log"
|
||||
"log/slog"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
@@ -21,6 +24,83 @@ var importCmd = &cobra.Command{
|
||||
if err != nil {
|
||||
slog.Info("Error importing data", "Error", err.Error())
|
||||
}
|
||||
db, err := config.NewDB(config.Config.DB)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
if config.Config.DB.Type == "sqlite" {
|
||||
if err := db.AutoMigrate(
|
||||
models.Profile{},
|
||||
models.Permission{},
|
||||
models.Assignment{},
|
||||
models.Sport{},
|
||||
models.Player{},
|
||||
models.Team{},
|
||||
models.Position{},
|
||||
models.Rooster{},
|
||||
models.Vendor{},
|
||||
models.CardSet{},
|
||||
models.Card{},
|
||||
models.Artist{},
|
||||
models.Publisher{},
|
||||
models.WorkType{},
|
||||
models.Comic{},
|
||||
models.Volume{},
|
||||
models.StoryArc{},
|
||||
models.Issue{},
|
||||
models.TradePaperback{},
|
||||
models.ComicWork{},
|
||||
models.IssueWork{},
|
||||
models.Article{},
|
||||
models.BookshelfPublisher{},
|
||||
models.Book{},
|
||||
models.Author{},
|
||||
models.ArticleAuthor{},
|
||||
models.BookAuthor{},
|
||||
models.MediaArticle{},
|
||||
models.MediaVideo{},
|
||||
models.MediaLoFi{},
|
||||
models.MediaFile{},
|
||||
models.MediaActor{},
|
||||
models.MediaActorFile{},
|
||||
models.Token{},
|
||||
models.MailAccount{},
|
||||
models.Mail{},
|
||||
); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
profileRepository := repository.NewProfileRepository(db)
|
||||
profileRepository.Import(data.Profile)
|
||||
permissionRepository := repository.NewPermissionRepository(db)
|
||||
permissionRepository.Import(data.Permission)
|
||||
assignmentRepository := repository.NewAssignmentRepository(db)
|
||||
assignmentRepository.Import(data.Assignment)
|
||||
sportRepository := repository.NewSportRepository(db)
|
||||
sportRepository.Import(data.Sport)
|
||||
playerRepository := repository.NewPlayerRepository(db)
|
||||
playerRepository.Import(data.Player)
|
||||
teamRepository := repository.NewTeamRepository(db)
|
||||
teamRepository.Import(data.Team)
|
||||
roosterRepository := repository.NewRoosterRepository(db)
|
||||
roosterRepository.Import(data.Rooster)
|
||||
vendorRepository := repository.NewVendorRepository(db)
|
||||
vendorRepository.Import(data.Vendor)
|
||||
cardSetRepository := repository.NewCardSetRepository(db)
|
||||
cardSetRepository.Import(data.CardSet)
|
||||
cardRepository := repository.NewCardRepository(db)
|
||||
cardRepository.Import(data.Card)
|
||||
artistRepository := repository.NewArtistRepository(db)
|
||||
artistRepository.Import(data.Artist)
|
||||
publisherRepository := repository.NewPublisherRepository(db)
|
||||
publisherRepository.Import(data.Publisher)
|
||||
workTypeRepository := repository.NewWorkTypeRepository(db)
|
||||
workTypeRepository.Import(data.Worktype)
|
||||
comicRepository := repository.NewComicRepository(db)
|
||||
comicRepository.Import(data.Comic)
|
||||
volumeRepository := repository.NewVolumeRepository(db)
|
||||
volumeRepository.Import(data.Volume)
|
||||
|
||||
slog.Info("importing Profiles", "count", len(data.Profile))
|
||||
slog.Info("importing Permissions", "count", len(data.Permission))
|
||||
slog.Info("importing Assignments", "count", len(data.Assignment))
|
||||
|
||||
Reference in New Issue
Block a user