2
0
mirror of https://github.com/inventree/InvenTree.git synced 2026-03-11 14:44:18 +00:00

Prevent migration check if performing DB update operations (#11356) (#11359)

* Prevent migration check if performing DB update operations

* Prevent settings write during data imports

* Prevent exchange rate update during migration processes

* Allow exchange rate updates during tests or shell session

(cherry picked from commit 951586a698)

Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
This commit is contained in:
github-actions[bot]
2026-02-18 00:52:31 +11:00
committed by GitHub
parent aa934214da
commit 57e9f5f3fb
3 changed files with 18 additions and 0 deletions

View File

@@ -320,6 +320,11 @@ class InvenTreeConfig(AppConfig):
if MIGRATIONS_CHECK_DONE:
return
# Exit early if we are not in a state where we can access the database,
# otherwise we might end up in a deadlock situation
if not InvenTree.ready.canAppAccessDatabase():
return
if not InvenTree.tasks.check_for_migrations():
logger.error('INVE-W8: Database Migrations required')
sys.exit(1)

View File

@@ -586,6 +586,12 @@ def update_exchange_rates(force: bool = False):
Arguments:
force: If True, force the update to run regardless of the last update time
"""
from InvenTree.ready import canAppAccessDatabase
# Do not update exchange rates if we cannot access the database
if not canAppAccessDatabase(allow_test=True, allow_shell=True):
return
try:
from djmoney.contrib.exchange.models import Rate

View File

@@ -44,6 +44,13 @@ def get_global_setting(key, backup_value=None, environment_key=None, **kwargs):
def set_global_setting(key, value, change_user=None, create=True, **kwargs):
"""Set the value of a global setting using the provided key."""
from common.models import InvenTreeSetting
from InvenTree.ready import canAppAccessDatabase
if not canAppAccessDatabase(allow_shell=True, allow_test=True):
logger.warning(
f'Cannot set global setting "{key}" - database is not accessible'
)
return False
kwargs['change_user'] = change_user
kwargs['create'] = create