fallback to reading binaries from filesystem when theres no db

This commit is contained in:
Nick Sweeting 2024-10-04 01:00:09 -07:00
parent 8336c997a1
commit f321d25f4c
No known key found for this signature in database
2 changed files with 15 additions and 10 deletions

View file

@ -78,9 +78,14 @@ class BaseBinary(BaseHook, Binary):
self.symlink_to_lib(binary=binary, bin_dir=CONSTANTS.LIB_BIN_DIR)
else:
# get cached binary from db
try:
from machine.models import InstalledBinary
installed_binary = InstalledBinary.objects.get_from_db_or_cache(self)
binary = InstalledBinary.load_from_db(installed_binary)
except Exception:
# maybe we are not in a DATA dir so there is no db, fallback to reading from fs
# (e.g. when archivebox version is run outside of a DATA dir)
binary = super().load(**kwargs)
return binary
@validate_call

View file

@ -154,7 +154,6 @@ def run_subcommand(subcommand: str,
subcommand_args = subcommand_args or []
if subcommand not in meta_cmds:
from archivebox.config.legacy import setup_django
cmd_requires_db = subcommand in archive_cmds
@ -162,6 +161,7 @@ def run_subcommand(subcommand: str,
setup_django(in_memory_db=subcommand in fake_db, check_db=cmd_requires_db and not init_pending)
if subcommand not in meta_cmds:
if cmd_requires_db:
check_migrations()