| 123456789101112131415161718192021222324252627282930313233 |
- import 'dart:io';
- import 'package:drift/native.dart';
- import 'package:drift/drift.dart';
- import 'package:path/path.dart' as p;
- import 'package:path_provider/path_provider.dart';
- import 'package:flutter/services.dart' show rootBundle;
- import '../core/constants.dart';
- QueryExecutor createDb(String dirPath, String dbName) {
- return NativeDatabase(File(p.join(dirPath, dbName)));
- }
- Future<String> ensureDbReady() async {
- final dir = await getApplicationDocumentsDirectory();
- final dbFile = File(p.join(dir.path, AppConstants.kDbName));
- if (!await dbFile.exists()) {
- try {
- final data = await rootBundle.load(AppConstants.kAssetsDbPath);
- await dbFile.create(recursive: true);
- await dbFile.writeAsBytes(data.buffer.asUint8List());
- } catch (_) {
- // No seed DB in assets, will create empty
- }
- }
- return dir.path;
- }
- Future<bool> isDatabaseEmpty(String dirPath) async {
- final dbFile = File(p.join(dirPath, AppConstants.kDbName));
- if (!await dbFile.exists()) return true;
- final stat = await dbFile.stat();
- return stat.size < 1024;
- }
|