From c0a30fe3a4356d18e891f34af9ae32fc0f866b42 Mon Sep 17 00:00:00 2001 From: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com> Date: Sun, 4 Jan 2026 11:48:12 -0600 Subject: [PATCH] remove sync_recordings and add config migrator --- frigate/config/camera/record.py | 3 --- frigate/util/config.py | 30 +++++++++++++++++++++++++++++- 2 files changed, 29 insertions(+), 4 deletions(-) diff --git a/frigate/config/camera/record.py b/frigate/config/camera/record.py index 90881f448..21816523a 100644 --- a/frigate/config/camera/record.py +++ b/frigate/config/camera/record.py @@ -77,9 +77,6 @@ class RecordExportConfig(FrigateBaseModel): class RecordConfig(FrigateBaseModel): enabled: bool = Field(default=False, title="Enable record on all cameras.") - sync_recordings: bool = Field( - default=False, title="Sync recordings with disk on startup and once a day." - ) expire_interval: int = Field( default=60, title="Number of minutes to wait between cleanup runs.", diff --git a/frigate/util/config.py b/frigate/util/config.py index c3d796397..b9e3fccb8 100644 --- a/frigate/util/config.py +++ b/frigate/util/config.py @@ -13,7 +13,7 @@ from frigate.util.services import get_video_properties logger = logging.getLogger(__name__) -CURRENT_CONFIG_VERSION = "0.17-0" +CURRENT_CONFIG_VERSION = "0.18-0" DEFAULT_CONFIG_FILE = os.path.join(CONFIG_DIR, "config.yml") @@ -98,6 +98,13 @@ def migrate_frigate_config(config_file: str): yaml.dump(new_config, f) previous_version = "0.17-0" + if previous_version < "0.18-0": + logger.info(f"Migrating frigate config from {previous_version} to 0.18-0...") + new_config = migrate_018_0(config) + with open(config_file, "w") as f: + yaml.dump(new_config, f) + previous_version = "0.18-0" + logger.info("Finished frigate config migration...") @@ -427,6 +434,27 @@ def migrate_017_0(config: dict[str, dict[str, Any]]) -> dict[str, dict[str, Any] return new_config +def migrate_018_0(config: dict[str, dict[str, Any]]) -> dict[str, dict[str, Any]]: + """Handle migrating frigate config to 0.18-0""" + new_config = config.copy() + + # Remove deprecated sync_recordings from global record config + if new_config.get("record", {}).get("sync_recordings") is not None: + del new_config["record"]["sync_recordings"] + + # Remove deprecated sync_recordings from camera-specific record configs + for name, camera in config.get("cameras", {}).items(): + camera_config: dict[str, dict[str, Any]] = camera.copy() + + if camera_config.get("record", {}).get("sync_recordings") is not None: + del camera_config["record"]["sync_recordings"] + + new_config["cameras"][name] = camera_config + + new_config["version"] = "0.18-0" + return new_config + + def get_relative_coordinates( mask: Optional[Union[str, list]], frame_shape: tuple[int, int] ) -> Union[str, list]: