diff --git a/cookbook/apps.py b/cookbook/apps.py index 2e31731df..3297d6928 100644 --- a/cookbook/apps.py +++ b/cookbook/apps.py @@ -17,23 +17,24 @@ class CookbookConfig(AppConfig): 'django.db.backends.postgresql']: import cookbook.signals # noqa - # when starting up run fix_tree to: - # a) make sure that nodes are sorted when switching between sort modes - # b) fix problems, if any, with tree consistency - with scopes_disabled(): - try: - from cookbook.models import Keyword, Food - Keyword.fix_tree(fix_paths=True) - Food.fix_tree(fix_paths=True) - except OperationalError: - if DEBUG: - traceback.print_exc() - pass # if model does not exist there is no need to fix it - except ProgrammingError: - if DEBUG: - traceback.print_exc() - pass # if migration has not been run database cannot be fixed yet - except Exception: - if DEBUG: - traceback.print_exc() - pass # dont break startup just because fix could not run, need to investigate cases when this happens + if not settings.DISABLE_TREE_FIX_STARTUP: + # when starting up run fix_tree to: + # a) make sure that nodes are sorted when switching between sort modes + # b) fix problems, if any, with tree consistency + with scopes_disabled(): + try: + from cookbook.models import Keyword, Food + Keyword.fix_tree(fix_paths=True) + Food.fix_tree(fix_paths=True) + except OperationalError: + if DEBUG: + traceback.print_exc() + pass # if model does not exist there is no need to fix it + except ProgrammingError: + if DEBUG: + traceback.print_exc() + pass # if migration has not been run database cannot be fixed yet + except Exception: + if DEBUG: + traceback.print_exc() + pass # dont break startup just because fix could not run, need to investigate cases when this happens diff --git a/recipes/settings.py b/recipes/settings.py index 73dff9cd7..6edb406b7 100644 --- a/recipes/settings.py +++ b/recipes/settings.py @@ -151,6 +151,7 @@ MIDDLEWARE = [ ] SORT_TREE_BY_NAME = bool(int(os.getenv('SORT_TREE_BY_NAME', False))) +DISABLE_TREE_FIX_STARTUP = bool(int(os.getenv('DISABLE_TREE_FIX_STARTUP', False))) if bool(int(os.getenv('SQL_DEBUG', False))): MIDDLEWARE += ('recipes.middleware.SqlPrintingMiddleware',)