From 73e2532058573962e4caf22131695ed95e3d0d09 Mon Sep 17 00:00:00 2001 From: Oliver Date: Thu, 26 Jun 2025 16:29:12 +1000 Subject: [PATCH] Clear data tweak (#9870) * Tweaks for config path checks * Update delete-data task --- .devcontainer/Dockerfile | 2 ++ src/backend/InvenTree/InvenTree/config.py | 7 ++++++- tasks.py | 14 +++++++++++--- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index e22342def0..cfdd06cc79 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -13,6 +13,8 @@ ENV INVENTREE_MEDIA_ROOT="${INVENTREE_DATA_DIR}/media" ENV INVENTREE_BACKUP_DIR="${INVENTREE_DATA_DIR}/backup" ENV INVENTREE_PLUGIN_DIR="${INVENTREE_DATA_DIR}/plugins" ENV INVENTREE_CONFIG_FILE="${INVENTREE_DATA_DIR}/config.yaml" +ENV INVENTREE_SECRET_KEY_FILE="${INVENTREE_DATA_DIR}/secret_key.txt" +ENV INVENTREE_OIDC_PRIVATE_KEY_FILE="${INVENTREE_DATA_DIR}/oidc.pem" # Required for running playwright within devcontainer ENV DISPLAY=:0 diff --git a/src/backend/InvenTree/InvenTree/config.py b/src/backend/InvenTree/InvenTree/config.py index c8e6aadf50..9d8a4a3f86 100644 --- a/src/backend/InvenTree/InvenTree/config.py +++ b/src/backend/InvenTree/InvenTree/config.py @@ -82,9 +82,13 @@ def inventreeInstaller() -> Optional[str]: if installer: return str(installer) - elif os.environ.get('INVENTREE_DEVCONTAINER', 'False') == 'True': + + if is_true(os.environ.get('INVENTREE_DEVCONTAINER', 'False')): return 'DEV' + if is_true(os.environ.get('INVENTREE_DOCKER', 'False')): + return 'DOC' + try: from django.conf import settings @@ -108,6 +112,7 @@ def get_config_dir() -> Path: return Path('/home/inventree/dev/').resolve() elif inst == 'PKG': return Path('/etc/inventree/').resolve() + return get_root_dir().joinpath('config').resolve() diff --git a/tasks.py b/tasks.py index d2c630be2a..670e9e8b5b 100644 --- a/tasks.py +++ b/tasks.py @@ -949,7 +949,7 @@ def import_records( sys.exit(1) if clear: - delete_data(c, force=True) + delete_data(c, force=True, migrate=True) info(f"Importing database records from '{target}'") @@ -1018,14 +1018,22 @@ def import_records( info('Data import completed') -@task -def delete_data(c, force=False): +@task( + help={ + 'force': 'Force deletion of all data without confirmation', + 'migrate': 'Run migrations before deleting data (default = False)', + } +) +def delete_data(c, force: bool = False, migrate: bool = False): """Delete all database records! Warning: This will REALLY delete all records in the database!! """ info('Deleting all data from InvenTree database...') + if migrate: + manage(c, 'migrate --run-syncdb') + if force: manage(c, 'flush --noinput') else: