add MigrateDB func for a single source of truth

This commit is contained in:
Hamidreza Ghavami
2023-05-06 00:22:21 +04:30
parent 5e3c0d6ecc
commit b125f1835c
3 changed files with 12 additions and 5 deletions

View File

@@ -211,8 +211,7 @@ func migrateDb() {
log.Fatal(err)
}
fmt.Println("Start migrating database...")
inboundService.MigrationRequirements()
inboundService.RemoveOrphanedTraffics()
inboundService.MigrateDB()
fmt.Println("Migration done!")
}

View File

@@ -572,6 +572,7 @@ func (s *InboundService) DisableInvalidInbounds() (int64, error) {
count := result.RowsAffected
return count, err
}
func (s *InboundService) DisableInvalidClients() (int64, error) {
db := database.GetDB()
now := time.Now().Unix() * 1000
@@ -582,7 +583,8 @@ func (s *InboundService) DisableInvalidClients() (int64, error) {
count := result.RowsAffected
return count, err
}
func (s *InboundService) RemoveOrphanedTraffics() {
func (s *InboundService) MigrationRemoveOrphanedTraffics() {
db := database.GetDB()
db.Exec(`
DELETE FROM client_traffics
@@ -593,6 +595,7 @@ func (s *InboundService) RemoveOrphanedTraffics() {
)
`)
}
func (s *InboundService) AddClientStat(inboundId int, client *model.Client) error {
db := database.GetDB()
@@ -611,6 +614,7 @@ func (s *InboundService) AddClientStat(inboundId int, client *model.Client) erro
}
return nil
}
func (s *InboundService) UpdateClientStat(email string, client *model.Client) error {
db := database.GetDB()
@@ -917,3 +921,8 @@ func (s *InboundService) MigrationRequirements() {
// Remove orphaned traffics
db.Where("inbound_id = 0").Delete(xray.ClientTraffic{})
}
func (s *InboundService) MigrateDB() {
s.MigrationRequirements()
s.MigrationRemoveOrphanedTraffics()
}

View File

@@ -467,8 +467,7 @@ func (s *ServerService) ImportDB(file multipart.File) error {
defer os.Rename(fallbackPath, config.GetDBPath())
return common.NewErrorf("Error migrating db: %v", err)
}
s.inboundService.MigrationRequirements()
s.inboundService.RemoveOrphanedTraffics()
s.inboundService.MigrateDB()
// remove fallback file
defer os.Remove(fallbackPath)