fix: Open database on android

This commit is contained in:
Krille Fear 2021-11-18 12:50:10 +01:00
parent 65ef2e4317
commit fc84245555

View File

@ -60,7 +60,6 @@ class FlutterFluffyBoxDatabase extends FluffyBoxDatabase {
await db.execute('PRAGMA page_size = 8192'); await db.execute('PRAGMA page_size = 8192');
await db.execute('PRAGMA cache_size = 16384'); await db.execute('PRAGMA cache_size = 16384');
await db.execute('PRAGMA temp_store = MEMORY'); await db.execute('PRAGMA temp_store = MEMORY');
await db.execute('PRAGMA journal_mode = WAL');
} }
static Future<sqflite.Database> _openSqlDatabase( static Future<sqflite.Database> _openSqlDatabase(
@ -69,24 +68,28 @@ class FlutterFluffyBoxDatabase extends FluffyBoxDatabase {
) async { ) async {
final path = await _findDatabasePath(client); final path = await _findDatabasePath(client);
try { try {
late final sqflite.Database db;
if (Platform.isAndroid || Platform.isIOS) { if (Platform.isAndroid || Platform.isIOS) {
final db = await sqflite.openDatabase( db = await sqflite.openDatabase(
path, path,
password: password, password: password,
onConfigure: _onConfigure, onConfigure: _onConfigure,
); );
return db; return db;
} else {
db = await ffi.databaseFactoryFfi.openDatabase(
path,
options: sqflite.SqlCipherOpenDatabaseOptions(
password: password,
onConfigure: _onConfigure,
),
);
} }
final db = await ffi.databaseFactoryFfi.openDatabase( await db.execute('PRAGMA journal_mode = WAL');
path,
options: sqflite.SqlCipherOpenDatabaseOptions(
password: password,
onConfigure: _onConfigure,
),
);
return db; return db;
} catch (_) { } catch (_) {
File(path).delete(); File(path).delete();
Logs().w('Failed to open database. Delete file now...');
rethrow; rethrow;
} }
} }