This commit is contained in:
DelLevin-Home
2026-06-18 18:52:01 +08:00
parent ba2612fef8
commit 8c7631b252
23 changed files with 906 additions and 599 deletions

View File

@@ -1,5 +1,7 @@
import 'package:sqflite/sqflite.dart';
import 'package:path/path.dart';
import 'dart:io';
import 'dart:typed_data';
import '../models/data_models.dart';
/// 数据库帮助类 - 管理数据库的创建和版本控制
@@ -26,6 +28,23 @@ class DatabaseHelper {
_database = await _initDB('mooknote.db');
}
/// 从备份字节重写数据库文件并安全重连,
/// 始终按当前代码的 targetVersion 重新初始化,避免版本不一致。
Future<void> reopenDatabaseFromBytes(Uint8List bytes) async {
await close();
final dbPath = await getDatabasesPath();
final path = join(dbPath, 'mooknote.db');
final dbFile = File(path);
if (await dbFile.exists()) {
await dbFile.delete();
}
await dbFile.writeAsBytes(bytes, flush: true);
_database = await _initDB('mooknote.db');
}
Future<Database> get database async {
if (_database != null) return _database!;
_database = await _initDB('mooknote.db');