testsAndMisc-archive/horatio/horatio_app/lib/database/app_database.dart

40 lines
1.2 KiB
Dart

import 'package:drift/drift.dart';
import 'package:horatio_app/database/daos/annotation_dao.dart';
import 'package:horatio_app/database/daos/recording_dao.dart';
import 'package:horatio_app/database/tables/annotation_snapshots_table.dart';
import 'package:horatio_app/database/tables/line_notes_table.dart';
import 'package:horatio_app/database/tables/line_recordings_table.dart';
import 'package:horatio_app/database/tables/text_marks_table.dart';
part 'app_database.g.dart';
/// Central drift database for Horatio.
///
/// Schema version 2: adds line_recordings table for voice recordings.
@DriftDatabase(
tables: [
TextMarksTable,
LineNotesTable,
AnnotationSnapshotsTable,
LineRecordingsTable,
],
daos: [AnnotationDao, RecordingDao],
)
class AppDatabase extends _$AppDatabase {
/// Creates an [AppDatabase] with the given [QueryExecutor].
AppDatabase(super.e);
@override
int get schemaVersion => 2;
@override
MigrationStrategy get migration => MigrationStrategy(
onCreate: (m) => m.createAll(),
onUpgrade: (m, from, to) async {
if (from < 2) {
await m.createTable(lineRecordingsTable);
}
},
);
}