mirror of
https://github.com/spl0k/supysonic.git
synced 2024-12-22 17:06:17 +00:00
Removed bulk deletes from scanner
Was causing either cache issues or constraint errors Fixes #103, #102
This commit is contained in:
parent
78cf84e136
commit
b25e943e4e
@ -107,7 +107,7 @@ class Folder(PathMixin, db.Entity):
|
||||
not exists(f for f in Folder if f.parent == self) and not self.root)
|
||||
total = 0
|
||||
while True:
|
||||
count = query.delete() # Non-bulk, MariaDB<10.3.1 doesn't like it
|
||||
count = query.delete()
|
||||
total += count
|
||||
if not count:
|
||||
return total
|
||||
@ -140,7 +140,7 @@ class Artist(db.Entity):
|
||||
@classmethod
|
||||
def prune(cls):
|
||||
return cls.select(lambda self: not exists(a for a in Album if a.artist == self) and \
|
||||
not exists(t for t in Track if t.artist == self)).delete(bulk = True)
|
||||
not exists(t for t in Track if t.artist == self)).delete()
|
||||
|
||||
class Album(db.Entity):
|
||||
_table_ = 'album'
|
||||
@ -180,7 +180,7 @@ class Album(db.Entity):
|
||||
|
||||
@classmethod
|
||||
def prune(cls):
|
||||
return cls.select(lambda self: not exists(t for t in Track if t.album == self)).delete(bulk = True)
|
||||
return cls.select(lambda self: not exists(t for t in Track if t.album == self)).delete()
|
||||
|
||||
class Track(PathMixin, db.Entity):
|
||||
_table_ = 'track'
|
||||
|
@ -87,7 +87,7 @@ class Scanner:
|
||||
f = folders.pop()
|
||||
|
||||
if not f.root and not os.path.isdir(f.path):
|
||||
Folder.select(lambda sub: sub.path.startswith(f.path)).delete(bulk = True)
|
||||
f.delete() # Pony will cascade
|
||||
continue
|
||||
|
||||
album_name = None
|
||||
|
Loading…
Reference in New Issue
Block a user