aboutsummaryrefslogtreecommitdiff
path: root/database/migrate.go
blob: d73eea958815eb33954a1b04f708f153c898ee76 (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{},

		// Cache entities
		&entities.CachedAnime{},
		&entities.CachedAnimeImages{},
		&entities.CachedAnimeLogos{},
		&entities.CachedAnimeCovers{},
		&entities.CachedAnimeScores{},
		&entities.CachedAiringStatusDates{},
		&entities.CachedAiringStatus{},
		&entities.CachedAnimeBroadcast{},
		&entities.CachedAnimeGenre{},
		&entities.CachedAnimeProducer{},
		&entities.CachedAnimeStudio{},
		&entities.CachedAnimeLicensor{},
		&entities.CachedNextEpisode{},
		&entities.CachedScheduleEpisode{},
		&entities.CachedEpisodeTitles{},
		&entities.CachedAnimeSingleEpisode{},
		&entities.CachedAnimeCharacter{},
		&entities.CachedAnimeVoiceActor{},
		&entities.CachedAnimeSeason{},
	)
	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()
}