mirror of
https://github.com/simon-ding/polaris.git
synced 2026-05-27 21:17:50 +08:00
batch delete
This commit is contained in:
5
db/db.go
5
db/db.go
@@ -31,7 +31,6 @@ import (
|
|||||||
"modernc.org/sqlite"
|
"modernc.org/sqlite"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
// https://github.com/ent/ent/discussions/1667#discussioncomment-1132296
|
// https://github.com/ent/ent/discussions/1667#discussioncomment-1132296
|
||||||
type sqliteDriver struct {
|
type sqliteDriver struct {
|
||||||
*sqlite.Driver
|
*sqlite.Driver
|
||||||
@@ -237,8 +236,8 @@ func (c *client) GetAllEpisodes() (ent.Episodes, error) {
|
|||||||
return ep, err
|
return ep, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *client) DeleteEpisode(id int) error {
|
func (c *client) DeleteEpisode(ids ...int) error {
|
||||||
_, err := c.ent.Episode.Delete().Where(episode.ID(id)).Exec(context.TODO())
|
_, err := c.ent.Episode.Delete().Where(episode.IDIn(ids...)).Exec(context.TODO())
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
func (c *client) GetEpisode(seriesId, seasonNum, episodeNum int) (*ent.Episode, error) {
|
func (c *client) GetEpisode(seriesId, seasonNum, episodeNum int) (*ent.Episode, error) {
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ type MediaApis interface {
|
|||||||
|
|
||||||
type EpisodeApis interface {
|
type EpisodeApis interface {
|
||||||
GetAllEpisodes() (ent.Episodes, error)
|
GetAllEpisodes() (ent.Episodes, error)
|
||||||
DeleteEpisode(id int) error
|
DeleteEpisode(ids ...int) error
|
||||||
GetEpisode(seriesId, seasonNum, episodeNum int) (*ent.Episode, error)
|
GetEpisode(seriesId, seasonNum, episodeNum int) (*ent.Episode, error)
|
||||||
GetEpisodeByID(epID int) (*ent.Episode, error)
|
GetEpisodeByID(epID int) (*ent.Episode, error)
|
||||||
UpdateEpiode(episodeId int, name, overview string) error
|
UpdateEpiode(episodeId int, name, overview string) error
|
||||||
|
|||||||
@@ -37,21 +37,21 @@ func (c *Engine) checkDbScraps() error {
|
|||||||
log.Debugf("get all episodes error: %v", err)
|
log.Debugf("get all episodes error: %v", err)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
count := 0
|
|
||||||
log.Infof("check db scraps, total episodes: %v, total media: %v", len(allEpisodes), len(validMediaIDs))
|
log.Infof("check db scraps, total episodes: %v, total media: %v", len(allEpisodes), len(validMediaIDs))
|
||||||
|
toDeleteIds := make([]int, 0)
|
||||||
for _, ep := range allEpisodes {
|
for _, ep := range allEpisodes {
|
||||||
if _, ok := validMediaIDs[ep.MediaID]; !ok {
|
if _, ok := validMediaIDs[ep.MediaID]; !ok {
|
||||||
//log.Infof("remove scrap episode record: %v S%vE%v", ep.MediaID, ep.SeasonNumber, ep.EpisodeNumber)
|
//log.Infof("remove scrap episode record: %v S%vE%v", ep.MediaID, ep.SeasonNumber, ep.EpisodeNumber)
|
||||||
if err := c.db.DeleteEpisode(ep.ID); err != nil {
|
toDeleteIds = append(toDeleteIds, ep.ID)
|
||||||
log.Errorf("delete scrap episode record error: %v", err)
|
|
||||||
}
|
|
||||||
count++
|
|
||||||
if count%100 == 0 {
|
|
||||||
log.Infof("%v scrap episode records removed...", count)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
log.Infof("%v scrap episode records removed...", count)
|
|
||||||
|
log.Infof("%v scrap episode records will be removed...", len(toDeleteIds))
|
||||||
|
|
||||||
|
if err := c.db.DeleteEpisode(toDeleteIds...); err != nil {
|
||||||
|
log.Errorf("delete scrap episode records error: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user