flutter-freaccess-hub/lib/shared/helpers/database_storage.dart

45 lines
1.4 KiB
Dart

import 'package:hub/shared/services/license/license_service.dart';
import 'package:hub/shared/services/sqlite/sqlite_service.dart';
import 'package:sqflite/sqflite.dart';
import 'package:path/path.dart';
import 'dart:developer';
class DatabaseStorage {
static final String _dbName = 'database.db';
static final int _dbVersion = 2;
static final DatabaseStorage instance = DatabaseStorage._internal();
factory DatabaseStorage() => instance;
DatabaseStorage._internal();
static late final Database _database;
static Database get database => _database;
Future<void> init() async {
_database = await openDatabase(
join(await getDatabasesPath(), _dbName),
version: _dbVersion,
onCreate: _onCreate,
onUpgrade: _onUpgrade,
onDowngrade: _onDowngrade,
);
}
Future<void> _onCreate(Database database, int version) async {
log('Creating database...');
await database.execute(SQLiteStorage.createTableQuery);
await database.execute(LicenseService.createTableQuery);
await LicenseService.setupLicense();
}
Future<void> _onUpgrade(Database database, int oldVersion, int newVersion) async {
log('Upgrading database from version $oldVersion to $newVersion...');
if (oldVersion < 2) {
await database.execute(LicenseService.createTableQuery);
await LicenseService.setupLicense();
}
}
Future<void> _onDowngrade(Database database, int oldVersion, int newVersion) async {}
}