22789aefe6490cd54507444a3b71d70ad4fc6aaf
[platform/core/appfw/aul-1.git] / scripts / upgrade / 1_appsvc_db_upgrade.sh.in
1 #!/bin/sh
2
3 #------------------------------------------#
4 # appsvc db upgrade ver.1                  #
5 #------------------------------------------#
6
7 # Macro
8 PATH=/bin:/usr/bin:/sbin:/usr/sbin
9
10 PATH_DB="$1"
11 PATH_NEW_DB="${PATH_DB}.new"
12 PATH_BACKUP_DB="${PATH_DB}.bak"
13
14 Init() {
15   echo "### Initialize"
16   cp ${PATH_DB} ${PATH_BACKUP_DB}
17   cp ${PATH_DB}-journal ${PATH_BACKUP_DB}-journal
18
19   if [ -e "${PATH_NEW_DB}" ]; then
20     rm ${PATH_NEW_DB}
21   fi
22
23   if [  -e "${PATH_NEW_DB}-journal" ]; then
24     rm ${PATH_NEW_DB}-journal
25   fi
26 }
27
28 # Create new DB
29 CreateNewDB() {
30   echo " - Create new DB: ${PATH_NEW_DB}"
31
32 sqlite3 ${PATH_NEW_DB} << EOF
33 PRAGMA journal_mode = PERSIST;
34 PRAGMA user_version = 1;
35
36 CREATE TABLE IF NOT EXISTS appsvc (
37   operation TEXT,
38   mime_type TEXT DEFAULT 'NULL',
39   uri TEXT DEFAULT 'NULL',
40   pkg_name TEXT,
41   PRIMARY KEY (operation,mime_type,uri)
42 );
43
44 CREATE TABLE IF NOT EXISTS alias_info (
45   alias_appid TEXT NOT NULL,
46   appid TEXT NOT NULL,
47   enable TEXT NOT NULL DEFAULT 'true',
48   PRIMARY KEY (alias_appid)
49 );
50
51 CREATE TABLE IF NOT EXISTS alias_info_for_uid (
52   appid TEXT NOT NULL,
53   uid INTEGER NOT NULL,
54   is_enabled TEXT NOT NULL DEFAULT 'false',
55   PRIMARY KEY (appid, uid)
56 );
57
58 CREATE TRIGGER IF NOT EXISTS update_alias_info_for_uid
59   AFTER UPDATE ON alias_info_for_uid
60   BEGIN
61     DELETE FROM alias_info_for_uid
62     WHERE is_enabled='true';
63   END;
64
65 CREATE TABLE IF NOT EXISTS allowed_info (
66   appid TEXT NOT NULL,
67   allowed_appid TEXT NOT NULL,
68   PRIMARY KEY (appid, allowed_appid)
69 );
70 EOF
71 }
72
73 # Insert old data into new DB
74 InsertAppsvc() {
75   echo " - Insert appsvc"
76   TABLE=`sqlite3 ${PATH_DB} 'SELECT operation, mime_type, uri, pkg_name FROM appsvc;'`
77   for ROW in ${TABLE}; do
78     IFS='|' read -ra VALUE <<< "${ROW}";
79     QUERY="INSERT INTO appsvc(operation, mime_type, uri, pkg_name) VALUES('${VALUE[0]}', '${VALUE[1]}', '${VALUE[2]}', '${VALUE[3]}');"
80     echo " + Query: ${QUERY}"
81     sqlite3 ${PATH_NEW_DB} "${QUERY}"
82   done
83 }
84
85 InsertAliasInfo() {
86   echo " - Insert alias_info"
87   TABLE=`sqlite3 ${PATH_DB} 'SELECT alias_appid, appid, enable FROM alias_info;'`
88   for ROW in ${TABLE}; do
89     IFS='|' read -ra VALUE <<< "${ROW}";
90     QUERY="INSERT INTO alias_info(alias_appid, appid, enable) VALUES('${VALUE[0]}', '${VALUE[1]}', '${VALUE[2]}');"
91     echo " + Query: ${QUERY}"
92     sqlite3 ${PATH_NEW_DB} "${QUERY}"
93   done
94 }
95
96 InsertAliasInfoForUid() {
97   echo " - Insert alias_info_for_uid"
98   TABLE=`sqlite3 ${PATH_DB} 'SELECT appid, uid, is_enabled FROM alias_info_for_uid;'`
99   for ROW in ${TABLE}; do
100     IFS='|' read -ra VALUE <<< "${ROW}";
101     QUERY="INSERT INTO alias_info_for_uid(appid, uid, is_enabled) VALUES('${VALUE[0]}', '${VALUE[1]}', '${VALUE[2]}');"
102     echo " + Query: ${QUERY}"
103     sqlite3 ${PATH_NEW_DB} "${QUERY}"
104   done
105 }
106
107 InsertAllowedInfo() {
108   echo " - Insert allowed_info"
109   TABLE=`sqlite3 ${PATH_DB} 'SELECT appid, allowed_appid FROM allowed_info;'`
110   for ROW in ${TABLE}; do
111     IFS='|' read -ra VALUE <<< "${ROW}";
112     QUERY="INSERT INTO allowed_info(appid, allowed_appid) VALUES('${VALUE[0]}', '${VALUE[1]}');"
113     echo " + Query: ${QUERY}"
114     sqlite3 ${PATH_NEW_DB} "${QUERY}"
115   done
116 }
117
118 Upgrade() {
119   echo "### Upgrade"
120   CreateNewDB
121
122   InsertAppsvc
123   InsertAliasInfo
124   InsertAliasInfoForUid
125   InsertAllowedInfo
126
127   cp ${PATH_NEW_DB} ${PATH_DB}
128   cp ${PATH_NEW_DB}-journal ${PATH_DB}-journal
129 }
130
131 Fini() {
132   echo "### Finish"
133   rm ${PATH_NEW_DB}
134   rm ${PATH_NEW_DB}-journal
135
136   rm ${PATH_BACKUP_DB}
137   rm ${PATH_BACKUP_DB}-journal
138 }
139
140 echo "#### 1. Upgrade appsvc db ####"
141 Init
142 Upgrade
143 Fini
144 echo "#### 1. Upgrade appsvc db [Done] ####"