我正在使用PhoneGap和jQueryMobile爲iOS和Android構建一個跨平臺的HTML/Javascript應用程序,並且我正在使用(除其他外)本地數據庫(localdatabase/websql)的一個表中的幾個新字段。測試本地數據庫(websql)是否包含所需的新字段,如果不是,則添加它們
我想確保當數據庫與新表中的字段,現有的用戶數據擴展,用戶數據不會被刪除或者被鎖定在inaccesible舊版本的數據庫的挑戰 。
背景: 我的應用程序有一個用戶數據(收入和支出,以及一些設置)的本地數據庫。這些數據需要堅持不懈,而且當我開始使用HTML5 localDatabase功能時,這種方法是持久的,並且可用於iOS和Android瀏覽器以及大多數桌面瀏覽器。
我正在使用一個名爲persistenceJS的Javascript插件/庫/ thingy來使處理localdb變得容易一些。但是我的問題並不是真正特定於persistenceJS。
我正在使用應用程序的新版本,該版本使用Settings表中的一些新字段。因此,當這些用戶下載新應用並運行它時,它必須測試他們的設置表是否包含此字段,如果不是,它必須創建該字段。
我該如何做這個測試?我看到兩條思路:
使用openDatabase函數中使用的數據庫標籤...。這似乎被某些開發人員用來存儲版本號。 這個選項我遇到的麻煩是我只知道如何使用openDatabase來打開數據庫(並創建一個新的數據庫,如果不存在的話),並且在數據庫尚不存在的情況下專門運行回調。 因此,如果我在標籤中指定類似「v2」的同時打開表格,它是否會創建一個新表格?如果是這樣,它會將舊錶格的值複製到新的值中嗎?
檢查是否存在表字段... 我可以使用openDatabase,然後測試表字段的存在性。如果他們不這樣做,我可以添加它們。每次用戶打開應用程序時都會運行測試,這似乎有點原始。
順便說一句: 我知道的WebSQL /的LocalDB已被統治者過時,但它仍然是我的工具,我想堅持到現在它。
你可以舉一些這個回調的例子,我們可以通過這個函數檢查數據庫的存在嗎? @Wytze – Learner