diff --git a/services/native/include/usb_right_database.h b/services/native/include/usb_right_database.h index 5bd9c85a67e76b528f421a674db580acfa1ba6d3..e7280d86e35e05839dac1fdc960cc71fc9ef5b57 100644 --- a/services/native/include/usb_right_database.h +++ b/services/native/include/usb_right_database.h @@ -34,8 +34,7 @@ static std::string USB_RIGHT_DB_PATH = "/data/service/el1/public/usb_service/"; constexpr const char *USB_RIGHT_DB_NAME = "usbRight.db"; constexpr const char *USB_RIGHT_TABLE_NAME = "usbRightInfoTable"; -constexpr int32_t DATABASE_OPEN_VERSION = 1; -constexpr int32_t DATABASE_NEW_VERSION = 2; +constexpr int32_t DATABASE_OPEN_VERSION = 2; constexpr const char *CREATE_USB_RIGHT_TABLE = "CREATE TABLE IF NOT EXISTS [usbRightInfoTable](" "[id] INTEGER PRIMARY KEY AUTOINCREMENT, " @@ -47,6 +46,7 @@ constexpr const char *CREATE_USB_RIGHT_TABLE = "CREATE TABLE IF NOT EXISTS [usbR "[deviceName] TEXT," "[bundleName] TEXT," "[tokenId] TEXT);"; +constexpr const char *SQL_ADD_TOKEN_ID = "ALTER TABLE usbRightInfoTable ADD COLUMN tokenId TEXT DEFAULT ''"; class UsbRightDataBase { public: diff --git a/services/native/src/usb_right_database.cpp b/services/native/src/usb_right_database.cpp index 3338ca3219a1bf58bfd03bda709874547066d420..bbba014a687e23907e194e38e7dda097216dd553 100644 --- a/services/native/src/usb_right_database.cpp +++ b/services/native/src/usb_right_database.cpp @@ -214,10 +214,17 @@ int32_t UsbRightDataBaseCallBack::OnCreate(OHOS::NativeRdb::RdbStore &store) int32_t UsbRightDataBaseCallBack::OnUpgrade(OHOS::NativeRdb::RdbStore &store, int32_t oldVersion, int32_t newVersion) { - USB_HILOGI(MODULE_USB_SERVICE, "DB OnUpgrade Enter"); - (void)store; - (void)oldVersion; - (void)newVersion; + USB_HILOGI(MODULE_USB_SERVICE, "DB OnUpgrade Enter %{public}d => %{public}d", oldVersion, newVersion); + if (oldVersion >= newVersion) { + return USB_RIGHT_OK; + } + + std::string sql = SQL_ADD_TOKEN_ID; + int32_t ret = store.ExecuteSql(sql); + if (ret != OHOS::NativeRdb::E_OK) { + // ignore sql error when tokenId is already exists + USB_HILOGW(MODULE_USB_SERVICE, "DB OnUpgrade failed: %{public}d", ret); + } return USB_RIGHT_OK; }