mirror of
https://gitlab.com/nkming2/nc-photos.git
synced 2025-03-26 17:04:43 +01:00
Drop db if failed migrating
This commit is contained in:
parent
ea07b5d2e8
commit
781d846806
3 changed files with 48 additions and 28 deletions
|
@ -45,6 +45,14 @@ class AppDb {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Future<void> delete() async {
|
||||||
|
_log.warning("[delete] Deleting database");
|
||||||
|
return await _lock.synchronized(() async {
|
||||||
|
final dbFactory = platform.getDbFactory();
|
||||||
|
await dbFactory.deleteDatabase(dbName);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
/// Open the database
|
/// Open the database
|
||||||
Future<Database> _open() {
|
Future<Database> _open() {
|
||||||
if (platform_k.isWeb) {
|
if (platform_k.isWeb) {
|
||||||
|
|
|
@ -27,6 +27,7 @@ class DbCompatV5 {
|
||||||
|
|
||||||
static Future<void> migrate(AppDb appDb) async {
|
static Future<void> migrate(AppDb appDb) async {
|
||||||
_log.info("[migrate] Migrate AppDb");
|
_log.info("[migrate] Migrate AppDb");
|
||||||
|
try {
|
||||||
await appDb.use((db) async {
|
await appDb.use((db) async {
|
||||||
final transaction = db.transaction(
|
final transaction = db.transaction(
|
||||||
[AppDb.file2StoreName, AppDb.metaStoreName], idbModeReadWrite);
|
[AppDb.file2StoreName, AppDb.metaStoreName], idbModeReadWrite);
|
||||||
|
@ -57,6 +58,12 @@ class DbCompatV5 {
|
||||||
rethrow;
|
rethrow;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
} catch (e, stackTrace) {
|
||||||
|
_log.shout(
|
||||||
|
"[migrate] Failed while migrating, drop db instead", e, stackTrace);
|
||||||
|
await appDb.delete();
|
||||||
|
rethrow;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static final _log = Logger("use_case.db_compat.v5.DbCompatV5");
|
static final _log = Logger("use_case.db_compat.v5.DbCompatV5");
|
||||||
|
|
|
@ -117,6 +117,11 @@ class MockAppDb implements AppDb {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<void> delete() async {
|
||||||
|
throw UnimplementedError();
|
||||||
|
}
|
||||||
|
|
||||||
static void _createDb(
|
static void _createDb(
|
||||||
Database db, {
|
Database db, {
|
||||||
bool hasAlbumStore = true,
|
bool hasAlbumStore = true,
|
||||||
|
|
Loading…
Add table
Reference in a new issue