Fix upgrade script 47/151747/5
authorJunghyun Yeon <jungh.yeon@samsung.com>
Fri, 22 Sep 2017 01:13:34 +0000 (10:13 +0900)
committerJunghyun Yeon <jungh.yeon@samsung.com>
Fri, 22 Sep 2017 05:45:53 +0000 (14:45 +0900)
- Fix wrong scripts to get latest db version properly.
- Remove usage of undefined variable.
- Add codes to migrate user db
- Add codes to migrate cert db

Change-Id: Iec8f5b670959dc984f623ed14e1662fed7c61ccd
Signed-off-by: Junghyun Yeon <jungh.yeon@samsung.com>
data/700.pkgmgr.patch.sh.in
data/updates/upgrade_to_30001.sh.in

index 08eeb28..4ed13ca 100644 (file)
@@ -6,19 +6,18 @@ PARSER_DB_NAME=.pkgmgr_parser.db
 PARSER_DB_PATH=$TZ_SYS_DB/$PARSER_DB_NAME
 DB_VERSION_FILE_PATH="/etc/package-manager/pkg_db_version.txt"
 DB_VERSION_OLD="`\"sqlite3\" \"$PARSER_DB_PATH\" 'PRAGMA user_version;'`"
-DB_VERSION_QUERY="`grep 'PRAGMA user_version' $DB_VERSION_FILE_PATH`"
-DB_VERSION_TARGET="`echo \"$DB_VERSION_QUERY\" | sed -r 's/.* ([0-9]+).*/\1/'`"
+DB_VERSION_NEW="`cat $DB_VERSION_FILE_PATH`"
 DB_VERSION_TIZEN24=1
 DB_VERSION_TIZEN30_DEFAULT=30000
 UPDATE_SCRIPT_LOCATION="/etc/package-manager/updates/"
 UPDATE_SCRIPT_PREFIX="upgrade_to_"
 
-#execute script from DB_VERSION_OLD to DB_VERSION_OLD+1 until DB_VERSION_OLD+1 reaches DB_VERSION_TARGET
+#execute script from DB_VERSION_OLD to DB_VERSION_OLD+1 until DB_VERSION_OLD+1 reaches DB_VERSION_NEW
 
 [ $DB_VERSION_OLD -eq $DB_VERSION_NEW ] && echo "Database is already up to date." && exit
 [ $DB_VERSION_OLD -gt $DB_VERSION_NEW ] && echo "Downgrading is not supported." && exit
 
-echo "Current version: $DB_VERSION_OLD, target version: $DB_VERSION_TARGET"
+echo "Current version: $DB_VERSION_OLD, target version: $DB_VERSION_NEW"
 
 #if old version is less than 1, upgrade to 30000, default version of tizen_3.0
 if [ $DB_VERSION_OLD -le $DB_VERSION_TIZEN24 ]; then
@@ -27,9 +26,9 @@ if [ $DB_VERSION_OLD -le $DB_VERSION_TIZEN24 ]; then
        DB_VERSION_OLD=30000
 fi
 
-for i in `seq $((DB_VERSION_OLD+1)) $DB_VERSION_TARGET`
+for i in `seq $(($DB_VERSION_OLD+1)) $DB_VERSION_NEW`
 do
-    echo "Updating $PARSER_DB_PATH to $i (target version is $DB_VERSION_TARGET)"
+    echo "Updating $PARSER_DB_PATH to $i (target version is $DB_VERSION_NEW)"
     UPDATE_SCRIPT="$UPDATE_SCRIPT_LOCATION/$UPDATE_SCRIPT_PREFIX$i.sh"
     [ ! -e "$UPDATE_SCRIPT" ] && echo "Can't find script $UPDATE_SCRIPT" && exit 1
     exec $UPDATE_SCRIPT
index 092acdb..a509d0f 100644 (file)
@@ -4,37 +4,58 @@ PATH=/bin:/usr/bin:/sbin:/usr/sbin
 source /etc/tizen-platform.conf
 
 PARSER_DB_NAME=.pkgmgr_parser.db
-PARSER_BACKUP_DB_NAME=.pkgmgr_parser_backup.db
 PARSER_DB_PATH=$TZ_SYS_DB/$PARSER_DB_NAME
-DB_RESULT_FILE=/tmp/result.log
 
-#define owner user
-DEFAULT_USER=$TZ_SYS_DEFAULT_USER
+function migrate_cert_db() {
+       echo "PRAGMA user_version=30001;" | sqlite3 $TZ_SYS_DB/.pkgmgr_cert.db
+}
 
-#define /opt/usr/home/owner
-DEFAULT_USER_HOME=$TZ_SYS_HOME/$DEFAULT_USER
+function migrate_parser_db() {
+       local dbpath=$1
 
-echo "CREATE TABLE IF NOT EXISTS package_appdefined_privilege_info (\n" \
+       echo -e "CREATE TABLE IF NOT EXISTS package_appdefined_privilege_info (\n" \
        "  package TEXT NOT NULL,\n" \
        "  privilege TEXT NOT NULL,\n" \
        "  license TEXT,\n" \
        "  type TEXT NOT NULL,\n" \
        "  PRIMARY KEY(package, privilege, type)\n" \
        "  FOREIGN KEY(package)\n" \
-       "  REFERENCES package_info(package) ON DELETE CASCADE);" | sqlite3 $PARSER_DB_PATH
+       "  REFERENCES package_info(package) ON DELETE CASCADE);" | sqlite3 $dbpath
+
+       echo -e "CREATE TABLE IF NOT EXISTS package_update_info (\n" \
+               "  package TEXT NOT NULL,\n" \
+               "  update_version TEXT NOT NULL,\n" \
+               "  update_type TEXT NOT NULL DEFAULT 'none',\n" \
+               "  PRIMARY KEY(package)\n" \
+               "  FOREIGN KEY(package)\n" \
+               "  REFERENCES package_info(package) ON DELETE CASCADE);" | sqlite3 $dbpath
+
+       echo -e "CREATE TABLE IF NOT EXISTS package_app_app_control_privilege (\n" \
+               "  app_id TEXT NOT NULL,\n" \
+               "  app_control TEXT NOT NULL,\n" \
+               "  privilege TEXT NOT NULL,\n" \
+               "  FOREIGN KEY(app_id,app_control)\n" \
+               "  REFERENCES package_app_app_control(app_id,app_control) ON DELETE CASCADE);" | sqlite3 $dbpath
+
+       echo "DROP TABLE IF EXISTS package_app_icon_section_info;" | sqlite3 $dbpath
+       echo "DROP TABLE IF EXISTS package_app_image_info;" | sqlite3 $dbpath
+       echo "DROP TABLE IF EXISTS package_app_app_permission;" | sqlite3 $dbpath
+       echo "DROP TABLE IF EXISTS package_app_share_allowed;" | sqlite3 $dbpath
+       echo "DROP TABLE IF EXISTS package_app_share_request;" | sqlite3 $dbpath
+
+       echo "PRAGMA user_version=30001;" | sqlite3 $dbpath
+}
+
+function migrate_user_db() {
+       #get each user db path and call migrate_parser_db for each of it
+
+       find $TZ_SYS_DB/user -name $PARSER_DB_NAME | while read DBPATH
+       do
+               migrate_parser_db $DBPATH
+       done
+}
+
+migrate_parser_db $PARSER_DB_PATH
+migrate_user_db
+migrate_cert_db
 
-echo "CREATE TABLE IF NOT EXISTS package_update_info (\n" \
-       "  package TEXT NOT NULL,\n" \
-       "  update_version TEXT NOT NULL,\n" \
-       "  update_type TEXT NOT NULL DEFAULT 'none',\n" \
-       "  PRIMARY KEY(package)\n" \
-       "  FOREIGN KEY(package)\n" \
-       "  REFERENCES package_info(package) ON DELETE CASCADE); " | sqlite3 $PARSER_DB_PATH
-
-echo "DROP TABLE package_app_icon_section_info;" | sqlite3 $PARSER_DB_PATH
-echo "DROP TABLE package_app_image_info;" | sqlite3 $PARSER_DB_PATH
-echo "DROP TABLE package_app_app_permission;" | sqlite3 $PARSER_DB_PATH
-echo "DROP TABLE package_app_share_allowed;" | sqlite3 $PARSER_DB_PATH
-echo "DROP TABLE package_app_share_request;" | sqlite3 $PARSER_DB_PATH
-
-echo "PRAGMA user_version=30001;" | sqlite3 $PARSER_DB_PATH