From 5977c71802d61a8bcb36cc0100a9ab21381364ac Mon Sep 17 00:00:00 2001 From: hwyml Date: Wed, 3 Jul 2024 11:34:28 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dusb=E6=8E=88=E6=9D=83?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E5=85=BC=E5=AE=B9=E6=80=A7=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: hwyml Change-Id: I7f9f458a2a6afb2e7ecc459b541f8a28264e0871 --- services/native/include/usb_right_database.h | 4 ++-- services/native/src/usb_right_database.cpp | 15 +++++++++++---- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/services/native/include/usb_right_database.h b/services/native/include/usb_right_database.h index 5bd9c85a..e7280d86 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 3338ca32..bbba014a 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; } -- Gitee