openDB method
Future<DatabaseInfo>
openDB(
- String path, {
- int version = 0,
- OnCreate? onCreate,
- OnUpgrade? onUpgrade,
- String? dbName,
- 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");
}