Android而更新應用程序SQLite數據庫不會覆蓋。它將使用舊的SQLiteDB,如果您在數據庫應用程序中添加任何新的字段將從舊的SQLiteDB中獲取。
要解決此問題:
- 使用SQLite數據庫版本。如果數據庫版本是新的,意味着需要在運行時更改表。
- 第一個版本:
db.execute('PRAGMA user_version = 1');
- 第二個版本:
db.execute('PRAGMA user_version = 2');
- 檢查版本訪問表之前:
db.execute('PRAGMA user_version');
另一種方式: 複製DB和重命名DB的地方就在代碼中使用同一個地方新的數據庫名稱。 Ti.Database.open( 'newDBName')。這不是一個好方法。
var checkDBVersion = function() {
var db = Ti.Database.open(DATABASE_NAME);
var rows = db.execute('PRAGMA user_version');
var dbVersion = 0;
if (rows.isValidRow()) {
dbVersion = rows.fieldByName('user_version');
}
db.close();
return dbVersion;};
聲明你的當前版本的數據庫與var DBVersion = 2
if(DBVersion!=checkDBVersion()){ //Write your alter query for Table }
每當應用程序的進一步釋放你的應用程序數據庫的更改需要更新您的DBVersion變量。
嗨Venkatesh,我如何檢查鈦代碼關於當前的數據庫版本的SQLite和基於該ALTER表?? ??如果可能,你可以提供一些代碼行。 ?謝謝 –
編輯我的答案。請檢查這可能對你有用。 – Venkatesh