我在设备上遇到app卸载问题。相关数据库似乎没有被删除,因此我无法更新我的表并添加新列。 可能是什么问题。
Android版本为6.0。
答案 0 :(得分:1)
如果您希望任何更新反映在您现有的数据库中,则无需手动删除或删除它。 sqlite为此提供了 onUpgrade()。你可以找到很多很好的stackoverflow解决方案,只需google就可以使用 onUpgrade()。
你可以这样使用它,
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
switch(oldVersion){
case 1:
db.execSQL("ALTER TABLE " + DATABASE_TABLE + " ADD COLUMN " + NEW_COLUMN_NAME + TYPE);
}
}
答案 1 :(得分:1)
卸载只删除.db
中的文件。
如果您要自己添加Content Provider
对象,(所以不要实现onUpgrade()
)并将db对象放在另一个目录中,它将不会被删除。
您也可以使用 var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var testSchema = new Schema({
"Name":String,
"TestValue":String
}, {
collection: 'test'
});
testSchema.eachPath(function(path) {
console.log(path);
});
testSchema.path('TestValue').set(function(value) {
console.log("value: " + value);
value="FFF";
this.TestValue = value;
return value;
});
module.exports = mongoose.model('test', testSchema);
方法。
答案 2 :(得分:1)
在Android6中卸载应用程序时删除数据库... 在AndroidManifest中添加以下标记:
<application
android:allowBackup="false"
tools:replace="android:allowBackup">