From: Rafal Krypa Date: Mon, 13 Mar 2017 15:28:28 +0000 (+0100) Subject: Allow version compatibility change during application upgrade X-Git-Tag: submit/tizen/20170330.102312~8 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=942b8ffe8ddc07e4037abac2f69f3460ade8585d;p=platform%2Fcore%2Fsecurity%2Fsecurity-manager.git Allow version compatibility change during application upgrade Security-manager should permit app installation request for cases where the same app is already installed, but platform version for the app has changed. Change-Id: Ia8ffdc20c084b7ade18e3deeed6d17b081149a70 Signed-off-by: Rafal Krypa --- diff --git a/db/db.sql b/db/db.sql index f22e4518..9f264b34 100644 --- a/db/db.sql +++ b/db/db.sql @@ -4,7 +4,7 @@ PRAGMA auto_vacuum = NONE; BEGIN EXCLUSIVE TRANSACTION; -PRAGMA user_version = 9; +PRAGMA user_version = 10; CREATE TABLE IF NOT EXISTS pkg ( pkg_id INTEGER PRIMARY KEY, @@ -88,11 +88,6 @@ BEGIN WHERE app_name=NEW.app_name AND pkg_name!=NEW.pkg_name); - SELECT RAISE(ABORT, 'Application already installed with different version') - WHERE EXISTS (SELECT 1 FROM user_app_pkg_view - WHERE app_name=NEW.app_name - AND version!=NEW.version); - SELECT RAISE(ABORT, 'Another application from this package is already installed with different author') WHERE EXISTS (SELECT 1 FROM user_app_pkg_view WHERE pkg_name=NEW.pkg_name @@ -115,6 +110,9 @@ BEGIN UPDATE pkg SET author_id=(SELECT author_id FROM author WHERE name=NEW.author_name) WHERE name=NEW.pkg_name AND author_id IS NULL; + -- If pkg have already existed with different version do update it + UPDATE app SET version=NEW.version WHERE app_id=NEW.app_id; + INSERT OR IGNORE INTO app (pkg_id, name, version) VALUES ( (SELECT pkg_id FROM pkg WHERE name=NEW.pkg_name), NEW.app_name, diff --git a/db/updates/update-db-to-v10.sql b/db/updates/update-db-to-v10.sql new file mode 100644 index 00000000..c90e88e3 --- /dev/null +++ b/db/updates/update-db-to-v10.sql @@ -0,0 +1,5 @@ +BEGIN EXCLUSIVE TRANSACTION; + +PRAGMA user_version = 10; + +COMMIT TRANSACTION;