gpt4 book ai didi

sqlite - 升级 SQFLITE : Unhandled Exception: DatabaseException(table UsernameTable has no column named rememberMe (Sqlite code 1):

转载 作者:行者123 更新时间:2023-12-05 07:22:54 27 4
gpt4 key购买 nike

Unhandled Exception: DatabaseException(table UsernameTable has no column named rememberMe (Sqlite code 1): , while compiling: INSERT OR REPLACE INTO UsernameTable (username, rememberMe) VALUES (?, ?), (OS error - 2:No such file or directory)) 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)""");
}

最佳答案

您需要确保数据库版本匹配才能访问数据库。验证是否正在调用 _onUpgrade() 方法 - 新版本似乎已通过该方法。如果您考虑到这一点,也可以在 sqflite 上打开期间进行自动版本管理。

关于sqlite - 升级 SQFLITE : Unhandled Exception: DatabaseException(table UsernameTable has no column named rememberMe (Sqlite code 1):,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56323951/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com