Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions drift_schemas/my_database/drift_schema_v4.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"_meta":{"description":"This file contains a serialized version of schema entities for drift.","version":"1.2.0"},"options":{"store_date_time_values_as_text":false},"entities":[{"id":0,"references":[],"type":"table","data":{"name":"fhir_resource","was_declared_in_moor":false,"columns":[{"name":"id","getter_name":"id","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"source_id","getter_name":"sourceId","moor_type":"string","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"resource_type","getter_name":"resourceType","moor_type":"string","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"resource_id","getter_name":"resourceId","moor_type":"string","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"title","getter_name":"title","moor_type":"string","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"date","getter_name":"date","moor_type":"dateTime","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"resource_raw","getter_name":"resourceRaw","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"encounter_id","getter_name":"encounterId","moor_type":"string","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"subject_id","getter_name":"subjectId","moor_type":"string","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"updated_at","getter_name":"updatedAt","moor_type":"dateTime","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]}],"is_virtual":false,"without_rowid":false,"constraints":[],"explicit_pk":["id"]}},{"id":1,"references":[],"type":"table","data":{"name":"sources","was_declared_in_moor":false,"columns":[{"name":"id","getter_name":"id","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"name","getter_name":"name","moor_type":"string","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"logo","getter_name":"logo","moor_type":"string","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"label_source","getter_name":"labelSource","moor_type":"string","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]}],"is_virtual":false,"without_rowid":false,"constraints":[],"explicit_pk":["id"]}},{"id":2,"references":[0],"type":"table","data":{"name":"record_attachments","was_declared_in_moor":false,"columns":[{"name":"id","getter_name":"id","moor_type":"int","nullable":false,"customConstraints":null,"defaultConstraints":"PRIMARY KEY AUTOINCREMENT","dialectAwareDefaultConstraints":{"sqlite":"PRIMARY KEY AUTOINCREMENT"},"default_dart":null,"default_client_dart":null,"dsl_features":["auto-increment"]},{"name":"resource_id","getter_name":"resourceId","moor_type":"string","nullable":false,"customConstraints":null,"defaultConstraints":"REFERENCES fhir_resource (id)","dialectAwareDefaultConstraints":{"sqlite":"REFERENCES fhir_resource (id)"},"default_dart":null,"default_client_dart":null,"dsl_features":["unknown"]},{"name":"file_path","getter_name":"filePath","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"timestamp","getter_name":"timestamp","moor_type":"dateTime","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]}],"is_virtual":false,"without_rowid":false,"constraints":[]}},{"id":3,"references":[0],"type":"table","data":{"name":"record_notes","was_declared_in_moor":false,"columns":[{"name":"id","getter_name":"id","moor_type":"int","nullable":false,"customConstraints":null,"defaultConstraints":"PRIMARY KEY AUTOINCREMENT","dialectAwareDefaultConstraints":{"sqlite":"PRIMARY KEY AUTOINCREMENT"},"default_dart":null,"default_client_dart":null,"dsl_features":["auto-increment"]},{"name":"resource_id","getter_name":"resourceId","moor_type":"string","nullable":false,"customConstraints":null,"defaultConstraints":"REFERENCES fhir_resource (id)","dialectAwareDefaultConstraints":{"sqlite":"REFERENCES fhir_resource (id)"},"default_dart":null,"default_client_dart":null,"dsl_features":["unknown"]},{"name":"content","getter_name":"content","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"timestamp","getter_name":"timestamp","moor_type":"dateTime","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]}],"is_virtual":false,"without_rowid":false,"constraints":[]}},{"id":4,"references":[0],"type":"index","data":{"on":0,"name":"resourceType","sql":null,"unique":false,"columns":["resource_type"]}},{"id":5,"references":[0],"type":"index","data":{"on":0,"name":"resourceId","sql":null,"unique":false,"columns":["resource_id"]}}]}
1 change: 1 addition & 0 deletions drift_schemas/my_database/drift_schema_v5.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"_meta":{"description":"This file contains a serialized version of schema entities for drift.","version":"1.2.0"},"options":{"store_date_time_values_as_text":false},"entities":[{"id":0,"references":[],"type":"table","data":{"name":"fhir_resource","was_declared_in_moor":false,"columns":[{"name":"id","getter_name":"id","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"source_id","getter_name":"sourceId","moor_type":"string","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"resource_type","getter_name":"resourceType","moor_type":"string","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"resource_id","getter_name":"resourceId","moor_type":"string","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"title","getter_name":"title","moor_type":"string","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"date","getter_name":"date","moor_type":"dateTime","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"resource_raw","getter_name":"resourceRaw","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"encounter_id","getter_name":"encounterId","moor_type":"string","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"subject_id","getter_name":"subjectId","moor_type":"string","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"updated_at","getter_name":"updatedAt","moor_type":"dateTime","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]}],"is_virtual":false,"without_rowid":false,"constraints":[],"explicit_pk":["id"]}},{"id":1,"references":[],"type":"table","data":{"name":"sources","was_declared_in_moor":false,"columns":[{"name":"id","getter_name":"id","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"name","getter_name":"name","moor_type":"string","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"logo","getter_name":"logo","moor_type":"string","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"label_source","getter_name":"labelSource","moor_type":"string","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]}],"is_virtual":false,"without_rowid":false,"constraints":[],"explicit_pk":["id"]}},{"id":2,"references":[0],"type":"table","data":{"name":"record_attachments","was_declared_in_moor":false,"columns":[{"name":"id","getter_name":"id","moor_type":"int","nullable":false,"customConstraints":null,"defaultConstraints":"PRIMARY KEY AUTOINCREMENT","dialectAwareDefaultConstraints":{"sqlite":"PRIMARY KEY AUTOINCREMENT"},"default_dart":null,"default_client_dart":null,"dsl_features":["auto-increment"]},{"name":"resource_id","getter_name":"resourceId","moor_type":"string","nullable":false,"customConstraints":null,"defaultConstraints":"REFERENCES fhir_resource (id)","dialectAwareDefaultConstraints":{"sqlite":"REFERENCES fhir_resource (id)"},"default_dart":null,"default_client_dart":null,"dsl_features":["unknown"]},{"name":"file_path","getter_name":"filePath","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"timestamp","getter_name":"timestamp","moor_type":"dateTime","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]}],"is_virtual":false,"without_rowid":false,"constraints":[]}},{"id":3,"references":[0],"type":"table","data":{"name":"record_notes","was_declared_in_moor":false,"columns":[{"name":"id","getter_name":"id","moor_type":"int","nullable":false,"customConstraints":null,"defaultConstraints":"PRIMARY KEY AUTOINCREMENT","dialectAwareDefaultConstraints":{"sqlite":"PRIMARY KEY AUTOINCREMENT"},"default_dart":null,"default_client_dart":null,"dsl_features":["auto-increment"]},{"name":"resource_id","getter_name":"resourceId","moor_type":"string","nullable":false,"customConstraints":null,"defaultConstraints":"REFERENCES fhir_resource (id)","dialectAwareDefaultConstraints":{"sqlite":"REFERENCES fhir_resource (id)"},"default_dart":null,"default_client_dart":null,"dsl_features":["unknown"]},{"name":"content","getter_name":"content","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"timestamp","getter_name":"timestamp","moor_type":"dateTime","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]}],"is_virtual":false,"without_rowid":false,"constraints":[]}},{"id":4,"references":[0],"type":"index","data":{"on":0,"name":"resourceType","sql":null,"unique":false,"columns":["resource_type"]}},{"id":5,"references":[0],"type":"index","data":{"on":0,"name":"resourceId","sql":null,"unique":false,"columns":["resource_id"]}}]}
5 changes: 4 additions & 1 deletion lib/core/data/local/app_database.dart
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ class AppDatabase extends _$AppDatabase {
AppDatabase([QueryExecutor? e]) : super(e ?? _openConnection());

@override
int get schemaVersion => 4;
int get schemaVersion => 5;

@override
MigrationStrategy get migration => MigrationStrategy(
Expand All @@ -37,6 +37,9 @@ class AppDatabase extends _$AppDatabase {
from3To4: (m, schema) async {
await m.addColumn(schema.sources, schema.sources.labelSource);
},
from4To5: (m, schema) async {
await m.addColumn(schema.fhirResource, schema.fhirResource.updatedAt);
},
),
);

Expand Down
164 changes: 144 additions & 20 deletions lib/core/data/local/app_database.steps.dart
Original file line number Diff line number Diff line change
Expand Up @@ -255,6 +255,22 @@ final class Schema3 extends i0.VersionedSchema {
'resourceId', 'CREATE INDEX resourceId ON fhir_resource (resource_id)');
}

class Shape3 extends i0.VersionedTable {
Shape3({required super.source, required super.alias}) : super.aliased();
i1.GeneratedColumn<int> get id =>
columnsByName['id']! as i1.GeneratedColumn<int>;
i1.GeneratedColumn<String> get resourceId =>
columnsByName['resource_id']! as i1.GeneratedColumn<String>;
i1.GeneratedColumn<String> get content =>
columnsByName['content']! as i1.GeneratedColumn<String>;
i1.GeneratedColumn<DateTime> get timestamp =>
columnsByName['timestamp']! as i1.GeneratedColumn<DateTime>;
}

i1.GeneratedColumn<String> _column_15(String aliasedName) =>
i1.GeneratedColumn<String>('content', aliasedName, false,
type: i1.DriftSqlType.string);

final class Schema4 extends i0.VersionedSchema {
Schema4({required super.database}) : super(version: 4);
@override
Expand All @@ -266,7 +282,7 @@ final class Schema4 extends i0.VersionedSchema {
resourceType,
resourceId,
];
late final Shape0 fhirResource = Shape0(
late final Shape4 fhirResource = Shape4(
source: i0.VersionedTable(
entityName: 'fhir_resource',
withoutRowId: false,
Expand All @@ -284,11 +300,12 @@ final class Schema4 extends i0.VersionedSchema {
_column_6,
_column_7,
_column_8,
_column_16,
],
attachedDatabase: database,
),
alias: null);
late final Shape4 sources = Shape4(
late final Shape5 sources = Shape5(
source: i0.VersionedTable(
entityName: 'sources',
withoutRowId: false,
Expand All @@ -300,7 +317,7 @@ final class Schema4 extends i0.VersionedSchema {
_column_0,
_column_9,
_column_10,
_column_16,
_column_17,
],
attachedDatabase: database,
),
Expand Down Expand Up @@ -341,28 +358,36 @@ final class Schema4 extends i0.VersionedSchema {
'resourceId', 'CREATE INDEX resourceId ON fhir_resource (resource_id)');
}

class Shape3 extends i0.VersionedTable {
Shape3({required super.source, required super.alias}) : super.aliased();
i1.GeneratedColumn<int> get id =>
columnsByName['id']! as i1.GeneratedColumn<int>;
class Shape4 extends i0.VersionedTable {
Shape4({required super.source, required super.alias}) : super.aliased();
i1.GeneratedColumn<String> get id =>
columnsByName['id']! as i1.GeneratedColumn<String>;
i1.GeneratedColumn<String> get sourceId =>
columnsByName['source_id']! as i1.GeneratedColumn<String>;
i1.GeneratedColumn<String> get resourceType =>
columnsByName['resource_type']! as i1.GeneratedColumn<String>;
i1.GeneratedColumn<String> get resourceId =>
columnsByName['resource_id']! as i1.GeneratedColumn<String>;
i1.GeneratedColumn<String> get content =>
columnsByName['content']! as i1.GeneratedColumn<String>;
i1.GeneratedColumn<DateTime> get timestamp =>
columnsByName['timestamp']! as i1.GeneratedColumn<DateTime>;
i1.GeneratedColumn<String> get title =>
columnsByName['title']! as i1.GeneratedColumn<String>;
i1.GeneratedColumn<DateTime> get date =>
columnsByName['date']! as i1.GeneratedColumn<DateTime>;
i1.GeneratedColumn<String> get resourceRaw =>
columnsByName['resource_raw']! as i1.GeneratedColumn<String>;
i1.GeneratedColumn<String> get encounterId =>
columnsByName['encounter_id']! as i1.GeneratedColumn<String>;
i1.GeneratedColumn<String> get subjectId =>
columnsByName['subject_id']! as i1.GeneratedColumn<String>;
i1.GeneratedColumn<DateTime> get updatedAt =>
columnsByName['updated_at']! as i1.GeneratedColumn<DateTime>;
}

i1.GeneratedColumn<String> _column_15(String aliasedName) =>
i1.GeneratedColumn<String>('content', aliasedName, false,
type: i1.DriftSqlType.string);

i1.GeneratedColumn<String> _column_16(String aliasedName) =>
i1.GeneratedColumn<String>('label_source', aliasedName, true,
type: i1.DriftSqlType.string);
i1.GeneratedColumn<DateTime> _column_16(String aliasedName) =>
i1.GeneratedColumn<DateTime>('updated_at', aliasedName, true,
type: i1.DriftSqlType.dateTime);

class Shape4 extends i0.VersionedTable {
Shape4({required super.source, required super.alias}) : super.aliased();
class Shape5 extends i0.VersionedTable {
Shape5({required super.source, required super.alias}) : super.aliased();
i1.GeneratedColumn<String> get id =>
columnsByName['id']! as i1.GeneratedColumn<String>;
i1.GeneratedColumn<String> get name =>
Expand All @@ -373,10 +398,102 @@ class Shape4 extends i0.VersionedTable {
columnsByName['label_source']! as i1.GeneratedColumn<String>;
}

i1.GeneratedColumn<String> _column_17(String aliasedName) =>
i1.GeneratedColumn<String>('label_source', aliasedName, true,
type: i1.DriftSqlType.string);

final class Schema5 extends i0.VersionedSchema {
Schema5({required super.database}) : super(version: 5);
@override
late final List<i1.DatabaseSchemaEntity> entities = [
fhirResource,
sources,
recordAttachments,
recordNotes,
resourceType,
resourceId,
];
late final Shape4 fhirResource = Shape4(
source: i0.VersionedTable(
entityName: 'fhir_resource',
withoutRowId: false,
isStrict: false,
tableConstraints: [
'PRIMARY KEY(id)',
],
columns: [
_column_0,
_column_1,
_column_2,
_column_3,
_column_4,
_column_5,
_column_6,
_column_7,
_column_8,
_column_16,
],
attachedDatabase: database,
),
alias: null);
late final Shape5 sources = Shape5(
source: i0.VersionedTable(
entityName: 'sources',
withoutRowId: false,
isStrict: false,
tableConstraints: [
'PRIMARY KEY(id)',
],
columns: [
_column_0,
_column_9,
_column_10,
_column_17,
],
attachedDatabase: database,
),
alias: null);
late final Shape2 recordAttachments = Shape2(
source: i0.VersionedTable(
entityName: 'record_attachments',
withoutRowId: false,
isStrict: false,
tableConstraints: [],
columns: [
_column_11,
_column_12,
_column_13,
_column_14,
],
attachedDatabase: database,
),
alias: null);
late final Shape3 recordNotes = Shape3(
source: i0.VersionedTable(
entityName: 'record_notes',
withoutRowId: false,
isStrict: false,
tableConstraints: [],
columns: [
_column_11,
_column_12,
_column_15,
_column_14,
],
attachedDatabase: database,
),
alias: null);
final i1.Index resourceType = i1.Index('resourceType',
'CREATE INDEX resourceType ON fhir_resource (resource_type)');
final i1.Index resourceId = i1.Index(
'resourceId', 'CREATE INDEX resourceId ON fhir_resource (resource_id)');
}

i0.MigrationStepWithVersion migrationSteps({
required Future<void> Function(i1.Migrator m, Schema2 schema) from1To2,
required Future<void> Function(i1.Migrator m, Schema3 schema) from2To3,
required Future<void> Function(i1.Migrator m, Schema4 schema) from3To4,
required Future<void> Function(i1.Migrator m, Schema5 schema) from4To5,
}) {
return (currentVersion, database) async {
switch (currentVersion) {
Expand All @@ -395,6 +512,11 @@ i0.MigrationStepWithVersion migrationSteps({
final migrator = i1.Migrator(database, schema);
await from3To4(migrator, schema);
return 4;
case 4:
final schema = Schema5(database: database);
final migrator = i1.Migrator(database, schema);
await from4To5(migrator, schema);
return 5;
default:
throw ArgumentError.value('Unknown migration from $currentVersion');
}
Expand All @@ -405,10 +527,12 @@ i1.OnUpgrade stepByStep({
required Future<void> Function(i1.Migrator m, Schema2 schema) from1To2,
required Future<void> Function(i1.Migrator m, Schema3 schema) from2To3,
required Future<void> Function(i1.Migrator m, Schema4 schema) from3To4,
required Future<void> Function(i1.Migrator m, Schema5 schema) from4To5,
}) =>
i0.VersionedSchema.stepByStepHelper(
step: migrationSteps(
from1To2: from1To2,
from2To3: from2To3,
from3To4: from3To4,
from4To5: from4To5,
));
Loading