mirror of
https://github.com/muety/wakapi.git
synced 2025-12-05 22:20:24 -08:00
chore: ability to toggle certain entity types in db migration script [skip-ci]
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -17,3 +17,4 @@ node_modules
|
||||
venv
|
||||
.env
|
||||
scripts/mysql_to_*.yml
|
||||
*.db-journal
|
||||
@@ -13,9 +13,15 @@ Usage:
|
||||
|
||||
Example: config.yml
|
||||
-------------------
|
||||
with_key_values: true
|
||||
with_users: true
|
||||
with_leaderboard: false
|
||||
with_language_mappings: true
|
||||
with_aliases: true
|
||||
with_summaries: false
|
||||
with_durations: false
|
||||
with_heartbeats: true
|
||||
with_project_labels: true
|
||||
|
||||
source:
|
||||
name: ../wakapi_db.db
|
||||
@@ -60,9 +66,15 @@ import (
|
||||
)
|
||||
|
||||
type config struct {
|
||||
WithLeaderboard bool `yaml:"with_leaderboard"`
|
||||
WithSummaries bool `yaml:"with_summaries"`
|
||||
WithDurations bool `yaml:"with_durations"`
|
||||
WithKeyValues bool `yaml:"with_key_values" default:"true"`
|
||||
WithUsers bool `yaml:"with_users" default:"true"`
|
||||
WithLeaderboard bool `yaml:"with_leaderboard" default:"false"`
|
||||
WithLanguageMappings bool `yaml:"with_language_mappings" default:"true"`
|
||||
WithAliases bool `yaml:"with_aliases" default:"true"`
|
||||
WithSummaries bool `yaml:"with_summaries" default:"false"`
|
||||
WithDurations bool `yaml:"with_durations" default:"false"`
|
||||
WithHeartbeats bool `yaml:"with_heartbeats" default:"true"`
|
||||
WithProjectLabels bool `yaml:"with_project_labels" default:"true"`
|
||||
Source dbConfig
|
||||
Target dbConfig
|
||||
}
|
||||
@@ -163,6 +175,7 @@ func main() {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
if cfg.WithKeyValues {
|
||||
log.Println("Migrating key-value pairs ...")
|
||||
if data, err := keyValueSource.GetAll(); err == nil {
|
||||
bar = progressbar.Default(int64(len(data)))
|
||||
@@ -176,7 +189,9 @@ func main() {
|
||||
} else {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
}
|
||||
|
||||
if cfg.WithUsers {
|
||||
log.Println("Migrating users ...")
|
||||
if data, err := userSource.GetAll(); err == nil {
|
||||
bar = progressbar.Default(int64(len(data)))
|
||||
@@ -190,7 +205,9 @@ func main() {
|
||||
} else {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
}
|
||||
|
||||
if cfg.WithLanguageMappings {
|
||||
log.Println("Migrating language mappings ...")
|
||||
if data, err := languageMappingSource.GetAll(); err == nil {
|
||||
bar = progressbar.Default(int64(len(data)))
|
||||
@@ -206,7 +223,9 @@ func main() {
|
||||
} else {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
}
|
||||
|
||||
if cfg.WithProjectLabels {
|
||||
log.Println("Migrating project labels ...")
|
||||
if data, err := projectLabelsSource.GetAll(); err == nil {
|
||||
bar = progressbar.Default(int64(len(data)))
|
||||
@@ -222,7 +241,9 @@ func main() {
|
||||
} else {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
}
|
||||
|
||||
if cfg.WithAliases {
|
||||
log.Println("Migrating aliases ...")
|
||||
if data, err := aliasSource.GetAll(); err == nil {
|
||||
bar = progressbar.Default(int64(len(data)))
|
||||
@@ -238,7 +259,9 @@ func main() {
|
||||
} else {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
}
|
||||
|
||||
if cfg.WithLeaderboard {
|
||||
log.Println("Migrating leaderboard ...")
|
||||
if data, err := leaderboardSource.GetAll(); err == nil {
|
||||
if err := leaderboardTarget.InsertBatch(data); err != nil {
|
||||
@@ -248,7 +271,9 @@ func main() {
|
||||
} else {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
}
|
||||
|
||||
if cfg.WithSummaries {
|
||||
// TODO: stream and batch-insert
|
||||
log.Println("Migrating summaries ...")
|
||||
if data, err := summarySource.GetAll(); err == nil {
|
||||
@@ -265,7 +290,9 @@ func main() {
|
||||
} else {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
}
|
||||
|
||||
if cfg.WithDurations {
|
||||
// TODO: stream and batch-insert
|
||||
log.Println("Migrating durations ...")
|
||||
bar = progressbar.Default(0)
|
||||
@@ -280,7 +307,9 @@ func main() {
|
||||
} else {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
}
|
||||
|
||||
if cfg.WithHeartbeats {
|
||||
log.Println("Migrating heartbeats ...")
|
||||
bar = progressbar.Default(int64(len(users)))
|
||||
for _, user := range users {
|
||||
@@ -298,6 +327,7 @@ func main() {
|
||||
bar.Add(1)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func getDb(cfg *dbConfig) (*gorm.DB, error) {
|
||||
gormLogger := logger.New(
|
||||
|
||||
Reference in New Issue
Block a user