Add ACM db upgrade/downgrade to db-migrator
[policy/docker.git] / policy-db-migrator / src / main / docker / prepare_downgrade.sh
1 #!/bin/sh
2 # ============LICENSE_START=======================================================
3 #  Copyright (C) 2021-2022 Nordix Foundation.
4 #  Modification Copyright 2024 Nordix Foundation.
5 # ================================================================================
6 # Licensed under the Apache License, Version 2.0 (the "License");
7 # you may not use this file except in compliance with the License.
8 # You may obtain a copy of the License at
9 #
10 #      http://www.apache.org/licenses/LICENSE-2.0
11 #
12 # Unless required by applicable law or agreed to in writing, software
13 # distributed under the License is distributed on an "AS IS" BASIS,
14 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 # See the License for the specific language governing permissions and
16 # limitations under the License.
17 #
18 # SPDX-License-Identifier: Apache-2.0
19 # ============LICENSE_END=========================================================
20
21 if [ $# -lt 1 ]; then
22     echo "args: schema-name" >&2
23     exit 1
24 fi
25
26 export SCHEMA=$1
27 export POLICY_HOME=/opt/app/policy
28 export operation=downgrade
29
30 cd $POLICY_HOME
31
32 # Create schema directory for upgrade
33 mkdir -p $POLICY_HOME/etc/db/migration/${SCHEMA}/${SCRIPT_DIRECTORY}/
34 # Remove any files from previous operations
35 rm -rf $POLICY_HOME/etc/db/migration/${SCHEMA}/${SCRIPT_DIRECTORY}/* 2>/dev/null
36 # Copy files to downgrade directories
37 cd /home/${SCHEMA}/${SCRIPT_DIRECTORY} && find . -type f  -not -path '*/upgrade/*' -not -path '*/upgrade'  -print0  \
38    | cpio --null -pud $POLICY_HOME/etc/db/migration/${SCHEMA}/${SCRIPT_DIRECTORY}/
39
40 releases=$(find $POLICY_HOME/etc/db/migration/${SCHEMA}/${SCRIPT_DIRECTORY}/*/downgrade -type d | sort -u | rev | cut -f2 -d/ | rev)
41 for release in $releases
42 do
43         echo "Preparing $operation release version: $release"
44 done
45 echo "Done"