openDB method

  1. @override
Future<DatabaseInfo> openDB(
  1. String path, {
  2. int version = 0,
  3. OnCreate? onCreate,
  4. OnUpgrade? onUpgrade,
  5. String? dbName,
  6. bool useGRPC = false,
})
override

Open the Database and returns DatabaseInfo with creation status and version.

Implementation

@override
Future<DatabaseInfo> openDB(
  String path, {
  int version = 0,
  OnCreate? onCreate,
  OnUpgrade? onUpgrade,
  String? dbName,
  bool useGRPC = false,
}) async {
  dbName ??= defaultDBName;
  bool missingDB = true;
  final factory = databaseFactoryFfiWeb;
  final db = await factory.openDatabase(path);
  databases.add(db: SqfliteWebDatabase(db), name: dbName);
  if (missingDB && onCreate != null) {
    await onCreate();
  }
  int currentVersion = await getVersion(dbName: dbName);
  if (onUpgrade != null && version != currentVersion) {
    await onUpgrade(currentVersion, version);
  }
  if (version != currentVersion) {
    await setVersion(version, dbName: dbName);
  }
  return DatabaseInfo(
      path: path,
      created: missingDB,
      version: version,
      dbName: dbName,
      sqliteVersion: "unknown");
}