From 0dad2692344364e3e0033a52674a2b6a6339ea82 Mon Sep 17 00:00:00 2001 From: Vivek Date: Tue, 22 Aug 2023 08:36:38 -0700 Subject: [PATCH] Run db_migrator for non first-time reboots (#16116) - Why I did it The recent change #15685 (comment) removed the db migration for non first reboots. This is problematic for many deployments which doesn't rely on ZTP and push a custom config_db.json Port to older branches after #15685 is ported back - How I did it Re-introduce the logic to run the db_migrator on non-first boots - How to verify it Verified reboot and warm-reboot cases Signed-off-by: Vivek Reddy Karri --- files/build_templates/docker_image_ctl.j2 | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/files/build_templates/docker_image_ctl.j2 b/files/build_templates/docker_image_ctl.j2 index 905873354c..49eff26e9e 100644 --- a/files/build_templates/docker_image_ctl.j2 +++ b/files/build_templates/docker_image_ctl.j2 @@ -136,9 +136,18 @@ function postStartAction() # This flag will be set to "1" after DB migration/initialization is completed as part of config-setup $SONIC_DB_CLI CONFIG_DB SET "CONFIG_DB_INITIALIZED" "0" else + $SONIC_DB_CLI CONFIG_DB SET "CONFIG_DB_INITIALIZED" "0" + # this is not a first time boot to a new image. Datbase container starts w/ old pre-existing config + if [[ -x /usr/local/bin/db_migrator.py ]]; then + # Migrate the DB to the latest schema version if needed + if [ -z "$DEV" ]; then + /usr/local/bin/db_migrator.py -o migrate + fi + fi # set CONFIG_DB_INITIALIZED to indicate end of config load and migration $SONIC_DB_CLI CONFIG_DB SET "CONFIG_DB_INITIALIZED" "1" fi + # Add redis UDS to the redis group and give read/write access to the group REDIS_SOCK="/var/run/redis${DEV}/redis.sock" else