From: Minje Ahn Date: Wed, 4 Jul 2018 07:40:30 +0000 (+0900) Subject: Add code for DB upgrade from v6 to v7 X-Git-Tag: accepted/tizen/unified/20180730.142105^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F98%2F183298%2F1;p=platform%2Fcore%2Fmultimedia%2Flibmedia-service.git Add code for DB upgrade from v6 to v7 Changes: Remove STORAGE_NAME, SCAN_STATUS from storage Remove SCAN_STATUS from folder Change-Id: I57cf764e3c99170708a1a5b6943031fd8ca4c317 Signed-off-by: Minje Ahn --- diff --git a/src/common/media-svc-db-utils.c b/src/common/media-svc-db-utils.c index 3566895..1d51adc 100755 --- a/src/common/media-svc-db-utils.c +++ b/src/common/media-svc-db-utils.c @@ -1213,6 +1213,110 @@ static int __media_svc_db_upgrade(sqlite3 *db_handle, int cur_version, uid_t uid } + /* Upgrade issue tizen 4.0 to 5.0 */ + if (cur_version < USER_V7) { + /******Upgrade Folder Table******/ + /* remove "scan_status" column */ + sql = sqlite3_mprintf("ALTER TABLE %q RENAME TO %q;", MEDIA_SVC_DB_TABLE_FOLDER, MEDIA_SVC_DB_TABLE_TMP_TABLE); + if (sql == NULL) { + media_svc_error("Query creation failed"); + ret = MS_MEDIA_ERR_OUT_OF_MEMORY; + goto ERROR; + } + + ret = _media_svc_sql_query(sql, uid); + SQLITE3_SAFE_FREE(sql); + if (ret != MS_MEDIA_ERR_NONE) { + media_svc_error("_media_svc_sql_query failed"); + goto ERROR; + } + + ret = _media_svc_make_table_query(MEDIA_SVC_DB_TABLE_FOLDER, MEDIA_SVC_DB_LIST_FOLDER, uid); + if (ret != MS_MEDIA_ERR_NONE) { + media_svc_error("_media_svc_make_table_query failed"); + goto ERROR; + } + + sql = sqlite3_mprintf("INSERT INTO %q (folder_uuid, path, name, modified_time, name_pinyin, storage_type, storage_uuid, folder_order, validity) SELECT folder_uuid, path, name, modified_time, name_pinyin, storage_type, storage_uuid, folder_order, validity FROM %q;", MEDIA_SVC_DB_TABLE_FOLDER, MEDIA_SVC_DB_TABLE_TMP_TABLE); + if (sql == NULL) { + media_svc_error("Query creation failed"); + ret = MS_MEDIA_ERR_OUT_OF_MEMORY; + goto ERROR; + } + + ret = _media_svc_sql_query(sql, uid); + SQLITE3_SAFE_FREE(sql); + if (ret != MS_MEDIA_ERR_NONE) { + media_svc_error("_media_svc_sql_query failed"); + goto ERROR; + } + + sql = sqlite3_mprintf("DROP TABLE %q;", MEDIA_SVC_DB_TABLE_TMP_TABLE); + if (sql == NULL) { + media_svc_error("Query creation failed"); + ret = MS_MEDIA_ERR_OUT_OF_MEMORY; + goto ERROR; + } + + ret = _media_svc_sql_query(sql, uid); + SQLITE3_SAFE_FREE(sql); + if (ret != MS_MEDIA_ERR_NONE) { + media_svc_error("_media_svc_sql_query failed"); + goto ERROR; + } + + + /******Upgrade Storage Table******/ + /* remove "scan_status", "storage_name" column */ + sql = sqlite3_mprintf("ALTER TABLE %q RENAME TO %q;", MEDIA_SVC_DB_TABLE_STORAGE, MEDIA_SVC_DB_TABLE_TMP_TABLE); + if (sql == NULL) { + media_svc_error("Query creation failed"); + ret = MS_MEDIA_ERR_OUT_OF_MEMORY; + goto ERROR; + } + + ret = _media_svc_sql_query(sql, uid); + SQLITE3_SAFE_FREE(sql); + if (ret != MS_MEDIA_ERR_NONE) { + media_svc_error("_media_svc_sql_query failed"); + goto ERROR; + } + + ret = _media_svc_make_table_query(MEDIA_SVC_DB_TABLE_STORAGE, MEDIA_SVC_DB_LIST_STORAGE, uid); + if (ret != MS_MEDIA_ERR_NONE) { + media_svc_error("_media_svc_make_table_query failed"); + goto ERROR; + } + + sql = sqlite3_mprintf("INSERT INTO %q (storage_uuid, storage_path, storage_type, validity) SELECT storage_uuid, storage_path, storage_type, validity FROM %q;", MEDIA_SVC_DB_TABLE_STORAGE, MEDIA_SVC_DB_TABLE_TMP_TABLE); + if (sql == NULL) { + media_svc_error("Query creation failed"); + ret = MS_MEDIA_ERR_OUT_OF_MEMORY; + goto ERROR; + } + + ret = _media_svc_sql_query(sql, uid); + SQLITE3_SAFE_FREE(sql); + if (ret != MS_MEDIA_ERR_NONE) { + media_svc_error("_media_svc_sql_query failed"); + goto ERROR; + } + + sql = sqlite3_mprintf("DROP TABLE %q;", MEDIA_SVC_DB_TABLE_TMP_TABLE); + if (sql == NULL) { + media_svc_error("Query creation failed"); + ret = MS_MEDIA_ERR_OUT_OF_MEMORY; + goto ERROR; + } + + ret = _media_svc_sql_query(sql, uid); + SQLITE3_SAFE_FREE(sql); + if (ret != MS_MEDIA_ERR_NONE) { + media_svc_error("_media_svc_sql_query failed"); + goto ERROR; + } + } + /* Rebuilding view */ ret = __media_svc_rebuild_view_query(db_handle, uid); diff --git a/src/include/common/media-svc-env.h b/src/include/common/media-svc-env.h index c69db5f..d0ba6ca 100755 --- a/src/include/common/media-svc-env.h +++ b/src/include/common/media-svc-env.h @@ -35,7 +35,7 @@ extern "C" { * DB information */ -#define LATEST_VERSION_NUMBER 6 +#define LATEST_VERSION_NUMBER 7 /** * Notice : New table user version -1 : alter table issue @@ -46,6 +46,7 @@ extern "C" { #define USER_V4 4 /** Tizen 2.4*/ #define USER_V5 5 /** Tizen 3.0*/ #define USER_V6 6 /** Tizen 4.0*/ +#define USER_V7 7 /** Tizen 5.0*/ /**