Limit size of database cache dump to 40 chars

Each backend has their limit. 40 chars is picked as limit to match the size of
mercurial hash.

Closes #12754
This commit is contained in:
Cédric Krier
2023-11-26 17:12:40 +01:00
parent 459795e2f3
commit 4779c72913
+2 -3
View File
@@ -142,12 +142,11 @@ def backup_db_cache(name):
def _db_cache_file(path, name):
hash_name = hashlib.shake_128(name.encode('utf8')).hexdigest(40 // 2)
if DB_CACHE.startswith('postgresql://'):
hash_name = hashlib.shake_128(name.encode('utf8')).hexdigest(
(63 - len('test-')) // 2)
return f"{DB_CACHE}/test-{hash_name}"
else:
return os.path.join(path, '%s-%s.dump' % (name, backend.name))
return os.path.join(path, f'{hash_name}-{backend.name}.dump')
def _sqlite_copy(file_, restore=False):