import 'dart:io'; import 'package:fmassive/gym_set.dart'; import 'package:fmassive/main.dart'; import 'package:moor/ffi.dart'; import 'package:moor/moor.dart'; import 'package:path/path.dart'; import 'package:sqflite/sqflite.dart'; import 'settings.dart'; part 'database.g.dart'; @UseMoor(tables: [Settings, GymSets]) class MyDatabase extends _$MyDatabase { MyDatabase() : super(_openConnection()); @override int get schemaVersion => 1; @override MigrationStrategy get migration => MigrationStrategy( onCreate: (Migrator m) async { await m.createAll(); var data = await db.select(db.settings).get(); if (data.isEmpty) await db.into(db.settings).insert(defaultSettings); }, onUpgrade: (Migrator m, int from, int to) async { // no migrations yet }, ); } LazyDatabase _openConnection() { return LazyDatabase(() async { final dbFolder = await getDatabasesPath(); final file = File(join(dbFolder, 'massive.db')); print('file.path=${file.path}'); return VmDatabase(file, logStatements: true); }); }