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;
  final response = await client.openDB(
    OpenDBRequest(
      version: version,
      dbName: dbName,
    ),
  );
  databases.add(
      db: SqliteServiceClientWrapper(client: client, dbName: dbName),
      name: dbName,
      useGRPC: useGRPC);
  if (response.created && 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(
    created: response.created,
    version: response.version,
    sqliteVersion: response.sqliteVersion,
    dbName: response.dbName,
    path: response.dbName,
  );
}