From: sangwan.kwon Date: Thu, 8 Sep 2016 08:21:11 +0000 (+0900) Subject: Support old user certs table's migration X-Git-Tag: accepted/tizen/common/20160912.181807~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F87%2F87487%2F2;p=platform%2Fcore%2Fsecurity%2Fcert-svc.git Support old user certs table's migration * When platform upgrade 2.4 -> 3.0, * copy old user certs table to new db. Change-Id: I4b01321b1e640c5d65184bbb1d883128f61581ef Signed-off-by: sangwan.kwon --- diff --git a/etc/upgrade/cert-svc-db-upgrade.sh.in b/etc/upgrade/cert-svc-db-upgrade.sh.in index 0fdd3c0..3f0f4a8 100755 --- a/etc/upgrade/cert-svc-db-upgrade.sh.in +++ b/etc/upgrade/cert-svc-db-upgrade.sh.in @@ -23,6 +23,8 @@ PATH=/bin:/usr/bin:/sbin:/usr/sbin OLD_DB=@CERT_SVC_OLD_DB_PATH@/certs-meta-old.db NEW_DB=@CERT_SVC_DB_PATH@/certs-meta.db +MIGRATION_USER_TABLE=migration-user-table.sql + # backup old database mv @CERT_SVC_OLD_DB_PATH@/certs-meta.db $OLD_DB rm -rf @CERT_SVC_OLD_DB_PATH@/certs-meta.db-journal @@ -30,6 +32,16 @@ rm -rf @CERT_SVC_OLD_DB_PATH@/certs-meta.db-journal # install new database cp @UPGRADE_DATA_PATH@/certs-meta.db $NEW_DB +# migration user certs db +touch $MIGRATION_USER_TABLE +echo "ATTACH DATABASE '$OLD_DB' as 'tmp';" >> $MIGRATION_USER_TABLE +echo "INSERT INTO wifi SELECT * FROM tmp.wifi;" >> $MIGRATION_USER_TABLE +echo "INSERT INTO vpn SELECT * FROM tmp.vpn;" >> $MIGRATION_USER_TABLE +echo "INSERT INTO email SELECT * FROM tmp.email;" >> $MIGRATION_USER_TABLE +echo "DETACH DATABASE 'tmp';" >> $MIGRATION_USER_TABLE +sqlite3 $NEW_DB ".read $MIGRATION_USER_TABLE" +rm -rf $MIGRATION_USER_TABLE + # update disabled certs on db disabled_certs_cnt=`sqlite3 $OLD_DB "SELECT count(*) FROM disabled_certs;"` if [ "$disabled_certs_cnt" != "0" ] diff --git a/tests/upgrade/cert-svc-test-upgrade.sh.in b/tests/upgrade/cert-svc-test-upgrade.sh.in index bbdce60..d301007 100755 --- a/tests/upgrade/cert-svc-test-upgrade.sh.in +++ b/tests/upgrade/cert-svc-test-upgrade.sh.in @@ -105,3 +105,28 @@ then else echo "[+] Success to sync bundle file with CERT_SVC_CA_BUNDLE." fi + +# testcase 5. user table migration +wifi_certs_cnt=`sqlite3 $NEW_DB "SELECT count(*) FROM wifi;"` +if [ "$wifi_certs_cnt" != "1" ] +then + echo "[-] Failed to migrate wifi table." +else + echo "[+] Success to migrate wifi table." +fi + +vpn_certs_cnt=`sqlite3 $NEW_DB "SELECT count(*) FROM vpn;"` +if [ "$vpn_certs_cnt" != "1" ] +then + echo "[-] Failed to migrate vpn table." +else + echo "[+] Success to migrate vpn table." +fi + +email_certs_cnt=`sqlite3 $NEW_DB "SELECT count(*) FROM email;"` +if [ "$email_certs_cnt" != "1" ] +then + echo "[-] Failed to migrate email table." +else + echo "[+] Success to migrate email table." +fi diff --git a/tests/upgrade/certs-meta-old.db b/tests/upgrade/certs-meta-old.db index 3d48d9f..bafd028 100644 Binary files a/tests/upgrade/certs-meta-old.db and b/tests/upgrade/certs-meta-old.db differ