aboutsummaryrefslogtreecommitdiff
path: root/database/migrate.go
blob: 89cdb7d1e7c8ae9b6d81927e78af29c04884eb80 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
package database

import (
	"fmt"
	"metachan/entities"
	"metachan/utils/logger"
)

func AutoMigrate() {
	err := DB.AutoMigrate(
		// Base entities
		&entities.TaskLog{},
		&entities.AnimeMapping{},

		// Anime entities
		&entities.Anime{},
		&entities.AnimeImages{},
		&entities.AnimeLogos{},
		&entities.AnimeCovers{},
		&entities.AnimeScores{},
		&entities.AiringStatusDates{},
		&entities.AiringStatus{},
		&entities.AnimeBroadcast{},
		&entities.AnimeGenre{},
		&entities.AnimeProducer{},
		&entities.AnimeStudio{},
		&entities.AnimeLicensor{},
		&entities.NextEpisode{},
		&entities.ScheduleEpisode{},
		&entities.EpisodeTitles{},
		&entities.AnimeSingleEpisode{},
		&entities.AnimeCharacter{},
		&entities.AnimeVoiceActor{},
		&entities.AnimeSeason{},
	)
	if err != nil {
		logger.Log(fmt.Sprintf("Failed to migrate database: %v", err), logger.LogOptions{
			Level:  logger.Error,
			Prefix: "Database",
		})
		panic(err)
	}

	logger.Log("Database migration completed successfully", logger.LogOptions{
		Level:  logger.Info,
		Prefix: "Database",
	})
}

// Migrate creates and migrations all tables
func Migrate() {
	// Use AutoMigrate to ensure consistent behavior
	AutoMigrate()
}