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
* 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:
committed by
GitHub
parent
aa934214da
commit
57e9f5f3fb
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user