Add code for DB upgrade from v6 to v7 98/183298/1 accepted/tizen/unified/20180730.142105 submit/tizen/20180727.055504
authorMinje Ahn <minje.ahn@samsung.com>
Wed, 4 Jul 2018 07:40:30 +0000 (16:40 +0900)
committerMinje Ahn <minje.ahn@samsung.com>
Wed, 4 Jul 2018 07:40:30 +0000 (16:40 +0900)
Changes:
Remove STORAGE_NAME, SCAN_STATUS from storage
Remove SCAN_STATUS from folder

Change-Id: I57cf764e3c99170708a1a5b6943031fd8ca4c317
Signed-off-by: Minje Ahn <minje.ahn@samsung.com>
src/common/media-svc-db-utils.c
src/include/common/media-svc-env.h

index 3566895..1d51adc 100755 (executable)
@@ -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);
 
index c69db5f..d0ba6ca 100755 (executable)
@@ -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*/
 
 
 /**