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;
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,
);
}