musicus_mobile/lib/database.dart
Elias Projahn ef4b81ce9b Fix error opening database
The schemaVersion has to be at least one.
2019-12-04 20:48:03 +01:00

45 lines
1.1 KiB
Dart

import 'dart:math';
import 'package:moor_flutter/moor_flutter.dart';
part 'database.g.dart';
final _random = Random(DateTime.now().millisecondsSinceEpoch);
int generateId() => _random.nextInt(0xFFFFFFFF);
@UseMoor(
include: {
'database.moor',
},
)
class Database extends _$Database {
Database(String fileName)
: super(FlutterQueryExecutor.inDatabaseFolder(path: fileName));
@override
int get schemaVersion => 1;
Future<void> updatePerson(Person person) async {
await into(persons).insert(person);
}
Future<void> updateInstrument(Instrument instrument) async {
await into(instruments).insert(instrument);
}
Future<void> updateWork(Work work, List<int> instrumentIds) async {
await transaction(() async {
await into(works).insert(work);
await (delete(instrumentations)..where((i) => i.work.equals(work.id)))
.go();
await into(instrumentations).insertAll(instrumentIds
.map((id) => Instrumentation(
work: work.id,
instrument: id,
))
.toList());
});
}
}