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
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
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