From 21e0793cec7b2dc37e07d2a246791b70495356ed Mon Sep 17 00:00:00 2001 From: SingLinkNetwork Date: Mon, 10 Aug 2026 17:00:43 +0800 Subject: [PATCH] fix(database): repair legacy profile labels --- lib/database/database.dart | 11 ++++++- test/database/database_test.dart | 55 ++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 test/database/database_test.dart diff --git a/lib/database/database.dart b/lib/database/database.dart index 6e54bc21..592a2553 100644 --- a/lib/database/database.dart +++ b/lib/database/database.dart @@ -33,7 +33,7 @@ class Database extends _$Database { Database([QueryExecutor? executor]) : super(executor ?? _openConnection()); @override - int get schemaVersion => 2; + int get schemaVersion => 3; static LazyDatabase _openConnection() { return LazyDatabase(() async { @@ -52,6 +52,9 @@ class Database extends _$Database { await _resetOrders(); await _migrateRules(m); } + if (from < 3) { + await _repairLegacyProfileLabels(); + } }, beforeOpen: (details) async { // final m = Migrator(this); @@ -114,6 +117,12 @@ class Database extends _$Database { await rulesDao.resetOrders(); } + Future _repairLegacyProfileLabels() { + return customStatement( + "UPDATE profiles SET label = '' WHERE label IS NULL", + ); + } + Future restore( List profiles, List