2015-07-03 100 views
0

更改Smartface應用程序升級時現有數據庫的最佳方法是什麼?更改Smartface應用程序升級時的數據庫結構

我的應用程序的新版本有稍微不同的數據庫結構(添加了新列)。

當升級發生時,GUI-desined數據集是新的(具有新列),而現有數據庫是舊的(沒有那些列)。

現有數據庫包含用戶數據,這意味着用空數據庫替換它不是一個選項。

下面的代碼無法正常工作(不添加列):

Data.execute("ALTER TABLE TableSettings ADD COLUMN NewColumn TEXT;"); 
Data.execute("UPDATE TableSettings SET NewColumn = 'test is fine';"); 
Data.DatasetSettings.refresh(); 

請分享一些想法如何解決這個問題。

回答

0

升級期間,如果表的結構相同並且keepDataOnUpdate標誌爲true,則數據將保留。


方法1
您可以使用新表格來處理。將數據從退出數據複製到新數據並刪除舊數據。不要刪除舊桌子。


方法2
您可以像現在這樣更改表格。對於將來的版本,請向數據庫添加一些檢查以避免通過腳本重新添加列。使用動態數據集來處理該表。發佈期間靜態數據集與表元緊密綁定;使用靜態數據集,您不能使用新列。




在Smartface的未來版本(預計4.5或4.6)數據庫管理將給予用戶提供關於什麼是數據庫和有關更新程序更多的控制更多的控制。

相關問題