如何更新SQFLite扑版本数据库?

时间:2020-05-19 19:30:38

标签: flutter sqflite

我需要创建新表并删除本地数据库中的其他表,但是仅更改数据库版本是行不通的,这不是在创建我需要的新表。

以相同的方式,我已经尝试过onUpgrade,但是没有用

Future<Database>  get database async{
    if( _database != null  )return _database;
    _database = await initDB();
    return _database;

  }


  initDB()async {
    Directory documentDirectory = await getApplicationDocumentsDirectory();
    String path = join( documentDirectory.path, 'DB.db' );
     var ouDb =  await openDatabase(path, version: 2,onCreate: onCreate, onUpgrade: onUpgrade);
     return ouDb;
    }

  FutureOr<void> onCreate(Database db, int version) async {

      await db.execute('CREATE TABLE nameTable0...');



      db.execute("DROP TABLE IF EXISTS NameTable1");
      db.execute("DROP TABLE IF EXISTS NameTable2");



  }

  FutureOr<void> onUpgrade(Database db, int oldVersion, int newVersion) async{
      if (oldVersion < newVersion) {
        await db.execute('CREATE TABLE NameTable3 ...');
      }
      //onCreate(db, newVersion); 
  }

1 个答案:

答案 0 :(得分:1)

您需要使用Call getDictKeyValues(oDict, "Ticket_Field3", Array("Row", "Cell"))

onUpgrade