未处理的异常:DatabaseException(表 UsernameTable 没有名为 rememberMe 的列(Sqlite 代码 1):,编译时:INSERT OR REPLACE INTO UsernameTable(用户名,rememberMe)值(?,?),(操作系统错误 - 2:没有这样的文件或目录)) sql 'INSERT OR REPLACE INTO UsernameTable (username, rememberMe) VALUES (?, ?)' args [term@melfs, 1]}
我升级了我的数据库。我在表中添加了新列UsernameTable
。但它不起作用。我在这个数据库中已经有很多记录了。我不能drop
所以我如何将新列添加到现有数据库。我用了Sqflite
initDb() async {
io.Directory documentsDirectory = await getApplicationDocumentsDirectory();
String path = join(documentsDirectory.path, "HelperDatabase.db");
var theDb = await openDatabase(path, version: 4, onCreate: _onCreate, onUpgrade: _onUpgrade);
return theDb;
}
OnUpgrade 方法。
void _onUpgrade(Database db, int oldVersion, int newVersion)async{
if(oldVersion != 5){
await db.execute("ALTER TABLE UsernameTable ADD COLUMN rememberMe INTEGER DEFAULT 0");
}
}
onCreate 方法
void _onCreate(Database db, int version) async {
await db.execute("""CREATE TABLE UsernameTable(username STRING)""");
}