diff --git a/scripts/setup/flush-memcached b/scripts/setup/flush-memcached index 903c7bb281..0c5cc059f2 100755 --- a/scripts/setup/flush-memcached +++ b/scripts/setup/flush-memcached @@ -4,19 +4,24 @@ import sys BASE_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), "../..") sys.path.append(BASE_DIR) +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "zproject.settings") from scripts.lib.setup_path import setup_path setup_path() import bmemcached - -from zproject import settings +from django.conf import settings cache = settings.CACHES["default"] -assert isinstance(cache, dict) # for mypy -client = bmemcached.Client((cache["LOCATION"],), **cache["OPTIONS"]) -try: - client.flush_all() -finally: - client.disconnect_all() +match cache["BACKEND"]: + case "django.core.cache.backends.locmem.LocMemCache": + pass + case "zerver.lib.singleton_bmemcached.SingletonBMemcached": + client = bmemcached.Client((cache["LOCATION"],), **cache["OPTIONS"]) + try: + client.flush_all() + finally: + client.disconnect_all() + case _: + raise ValueError(f"Unrecognized cache backend {cache['BACKEND']}")