我正在通过使用sqflite插件在Flutter中使用Sqlite数据库。通过下面提到的链接,我能够成功创建数据库并在其中执行CRUD操作。
Sqflite Tutorial - Youtube Playlist
问题是,一旦创建数据库,我就无法修改旧表。为了在“ tabEmployee”表中获得新列,我必须删除数据库并重新创建它。
value: string
我该怎么做才能在sqflite中修改以前创建的表而不删除数据库?
答案 0 :(得分:0)
我设法解决了我的问题。在dlohani评论和How to add new Column to Android SQLite Database链接的帮助下。
我创建了一个新方法“ _onUpgrade”,并将其称为“ openDatabase”的参数,并更改了版本号。 以下是我的相关代码:
initDb() async {
Directory documentDirectory = await getApplicationDocumentsDirectory();
String path = join(documentDirectory.path, 'maindb.db');
var ourDb = await openDatabase(path, version: 2, onCreate: _onCreate, onUpgrade: _onUpgrade);
return ourDb;
}
// UPGRADE DATABASE TABLES
void _onUpgrade(Database db, int oldVersion, int newVersion) {
if (oldVersion < newVersion) {
db.execute("ALTER TABLE tabEmployee ADD COLUMN newCol TEXT;");
}
}