Skip to content

Commit

Permalink
Implemented Drift connection & database (#176)
Browse files Browse the repository at this point in the history
Closes #170
  • Loading branch information
hawkkiller committed May 13, 2023
1 parent 0e98715 commit 755e1e5
Show file tree
Hide file tree
Showing 4 changed files with 40 additions and 0 deletions.
15 changes: 15 additions & 0 deletions lib/src/core/database/app_database.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import 'package:drift/drift.dart';
import 'package:sizzle_starter/src/core/database/connection/open_connection_stub.dart'
if (dart.library.io) 'package:sizzle_starter/src/core/database/connection/open_connection_io.dart'
if (dart.library.html) 'package:sizzle_starter/src/core/database/connection/open_connection_html.dart'
as connection;

part 'app_database.g.dart';

@DriftDatabase()
class AppDatabase extends _$AppDatabase {
AppDatabase({required String name}) : super(connection.openConnection(name));

@override
int get schemaVersion => 1;
}
6 changes: 6 additions & 0 deletions lib/src/core/database/connection/open_connection_html.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import 'package:drift/drift.dart';
import 'package:drift/web.dart';

QueryExecutor openConnection(String name) => WebDatabase(
name,
);
15 changes: 15 additions & 0 deletions lib/src/core/database/connection/open_connection_io.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import 'dart:io';

import 'package:drift/drift.dart';
import 'package:drift/native.dart';
import 'package:path/path.dart' as path;
import 'package:path_provider/path_provider.dart';

QueryExecutor openConnection(String name) => LazyDatabase(
() async {
final dbFolder = await getApplicationDocumentsDirectory();
final file = File(path.join(dbFolder.path, '$name.sqlite'));

return NativeDatabase(file);
},
);
4 changes: 4 additions & 0 deletions lib/src/core/database/connection/open_connection_stub.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
import 'package:drift/drift.dart';

QueryExecutor openConnection(String name) =>
throw UnsupportedError('Platform is not recognised as supported one');

0 comments on commit 755e1e5

Please sign in to comment.