mirror of
https://github.com/umap-project/umap.git
synced 2025-04-29 11:52:38 +02:00
chore: delete all datalayers version on delete
This commit is contained in:
parent
cc457e9634
commit
c4c874c5c2
1 changed files with 7 additions and 4 deletions
|
@ -513,10 +513,11 @@ class DataLayer(NamedModel):
|
||||||
force_insert=force_insert, force_update=force_update, **kwargs
|
force_insert=force_insert, force_update=force_update, **kwargs
|
||||||
)
|
)
|
||||||
self.purge_gzip()
|
self.purge_gzip()
|
||||||
self.purge_old_versions()
|
self.purge_old_versions(keep=settings.UMAP_KEEP_VERSIONS)
|
||||||
|
|
||||||
def delete(self, **kwargs):
|
def delete(self, **kwargs):
|
||||||
self.purge_gzip()
|
self.purge_gzip()
|
||||||
|
self.purge_old_versions(keep=None)
|
||||||
return super().delete(**kwargs)
|
return super().delete(**kwargs)
|
||||||
|
|
||||||
def upload_to(self):
|
def upload_to(self):
|
||||||
|
@ -596,14 +597,16 @@ class DataLayer(NamedModel):
|
||||||
def get_version_path(self, name):
|
def get_version_path(self, name):
|
||||||
return "{root}/{name}".format(root=self.storage_root(), name=name)
|
return "{root}/{name}".format(root=self.storage_root(), name=name)
|
||||||
|
|
||||||
def purge_old_versions(self):
|
def purge_old_versions(self, keep=None):
|
||||||
root = self.storage_root()
|
root = self.storage_root()
|
||||||
versions = self.versions[settings.UMAP_KEEP_VERSIONS :]
|
versions = self.versions
|
||||||
|
if keep is not None:
|
||||||
|
versions = versions[keep:]
|
||||||
for version in versions:
|
for version in versions:
|
||||||
name = version["name"]
|
name = version["name"]
|
||||||
# Should not be in the list, but ensure to not delete the file
|
# Should not be in the list, but ensure to not delete the file
|
||||||
# currently used in database
|
# currently used in database
|
||||||
if self.geojson.name.endswith(name):
|
if keep is not None and self.geojson.name.endswith(name):
|
||||||
continue
|
continue
|
||||||
try:
|
try:
|
||||||
self.geojson.storage.delete(os.path.join(root, name))
|
self.geojson.storage.delete(os.path.join(root, name))
|
||||||
|
|
Loading…
Reference in a new issue