2010-09-09 30 views
2

我希望我的用戶可以在10年後仍然可以讀取我的sqlite數據庫,因爲可能存在他們想要瀏覽的數據。如何在應用程序全新的情況下向下兼容客戶的舊本地數據庫?

那麼數據庫文件是10歲。同時我升級了我的數據庫結構(其他字段是最好的例子),我的最新版本的應用程序使用了這個新字段。

現在用戶想要使用全新的應用程序版本加載10年前的數據庫。但是這樣做沒有用,因爲在舊的數據庫文件中缺少一些字段。

你會如何處理這種情況?

回答

2

解決這個問題的最簡單方法是單獨保留新應用程序。它只適用於新格式。從長遠來看,這會更容易,因爲您的程序不需要考慮使用一堆不同的數據結構。

創建一個「升級」(創建一個新文件並傳輸數據等或無論您想要處理它)舊數據庫文件以類似於新數據庫文件的程序。

+0

「升級」功能還充當「導入」 – Beth 2010-09-09 21:01:24

+0

因此,您建議我製作一個Database_Converter工具並將其附加到應用程序中,以便它們一起分發。這個工具將允許用戶加載一箇舊的數據庫及其所有數據,並將其傳輸到具有新結構的數據庫中?如果其中一個新字段不允許空值,該怎麼辦?所以我必須插入一些舊數據庫中不可用的數據。你對這種情況有什麼建議? – msfanboy 2010-09-10 15:14:35

+0

@msfanboy幾乎是耶。您如何處理轉換將必須根據具體情況進行。當您更改新程序的數據庫時,您可能必須記住先前版本中允許的內容以及如何升級。就我個人而言,我不會將升級程序附加到新版本。我會讓他們聯繫你以獲得它。有兩個原因,一個是如果升級程序出現問題,您可以在將其發送給任何請求它的人之前解決該問題。兩個當你在下一個創建版本後,你可以決定如何從v1到v3。 – kemiller2002 2010-09-10 20:02:28

相關問題