From 0b27de299e3558094b62d2bf2f6c95757ac71d52 Mon Sep 17 00:00:00 2001 From: Fabian Freund Date: Thu, 25 Sep 2025 10:52:55 +0200 Subject: [PATCH] activate drift migrations --- app/build.yaml | 5 +++++ app/drift_schemas/bangs/drift_schema_v1.json | 1 + app/drift_schemas/tabs/drift_schema_v2.json | 1 + app/drift_schemas/user/drift_schema_v1.json | 1 + app/drift_schemas/user/drift_schema_v2.json | 1 + app/drift_schemas/web_feed/drift_schema_v1.json | 1 + 6 files changed, 10 insertions(+) create mode 100644 app/drift_schemas/bangs/drift_schema_v1.json create mode 100644 app/drift_schemas/tabs/drift_schema_v2.json create mode 100644 app/drift_schemas/user/drift_schema_v1.json create mode 100644 app/drift_schemas/user/drift_schema_v2.json create mode 100644 app/drift_schemas/web_feed/drift_schema_v1.json diff --git a/app/build.yaml b/app/build.yaml index 0f3118d3..fb8197cc 100644 --- a/app/build.yaml +++ b/app/build.yaml @@ -13,6 +13,11 @@ targets: skip_verification_code: true data_class_to_companions: false named_parameters: true + databases: + bangs: lib/features/bangs/data/database/database.dart + tabs: lib/features/geckoview/features/tabs/data/database/database.dart + user: lib/features/user/data/database/database.dart + web_feed: lib/features/web_feed/data/database/database.dart sql: dialect: sqlite options: diff --git a/app/drift_schemas/bangs/drift_schema_v1.json b/app/drift_schemas/bangs/drift_schema_v1.json new file mode 100644 index 00000000..f26052a8 --- /dev/null +++ b/app/drift_schemas/bangs/drift_schema_v1.json @@ -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":"bang","was_declared_in_moor":true,"columns":[{"name":"trigger","getter_name":"trigger","moor_type":"string","nullable":false,"customConstraints":"PRIMARY KEY NOT NULL","default_dart":null,"default_client_dart":null,"dsl_features":["primary-key"]},{"name":"group","getter_name":"group","moor_type":"int","nullable":false,"customConstraints":"NOT NULL","default_dart":null,"default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const EnumIndexConverter(BangGroup.values)","dart_type_name":"BangGroup"}},{"name":"website_name","getter_name":"websiteName","moor_type":"string","nullable":false,"customConstraints":"NOT NULL","default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"domain","getter_name":"domain","moor_type":"string","nullable":false,"customConstraints":"NOT NULL","default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"url_template","getter_name":"urlTemplate","moor_type":"string","nullable":false,"customConstraints":"NOT NULL","default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"category","getter_name":"category","moor_type":"string","nullable":true,"customConstraints":"","default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"sub_category","getter_name":"subCategory","moor_type":"string","nullable":true,"customConstraints":"","default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"format","getter_name":"format","moor_type":"string","nullable":true,"customConstraints":"","default_dart":null,"default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const BangFormatConverter()","dart_type_name":"Set?"}}],"is_virtual":false,"without_rowid":false,"constraints":[]}},{"id":1,"references":[],"type":"table","data":{"name":"bang_sync","was_declared_in_moor":true,"columns":[{"name":"group","getter_name":"group","moor_type":"int","nullable":false,"customConstraints":"PRIMARY KEY NOT NULL","default_dart":null,"default_client_dart":null,"dsl_features":["primary-key"],"type_converter":{"dart_expr":"const EnumIndexConverter(BangGroup.values)","dart_type_name":"BangGroup"}},{"name":"last_sync","getter_name":"lastSync","moor_type":"dateTime","nullable":false,"customConstraints":"NOT NULL","default_dart":null,"default_client_dart":null,"dsl_features":[]}],"is_virtual":false,"without_rowid":false,"constraints":[]}},{"id":2,"references":[0],"type":"table","data":{"name":"bang_frequency","was_declared_in_moor":true,"columns":[{"name":"trigger","getter_name":"trigger","moor_type":"string","nullable":false,"customConstraints":"PRIMARY KEY NOT NULL REFERENCES bang(\"trigger\")ON DELETE CASCADE","default_dart":null,"default_client_dart":null,"dsl_features":["primary-key",{"foreign_key":{"to":{"table":"bang","column":"trigger"},"initially_deferred":false,"on_update":null,"on_delete":"cascade"}}]},{"name":"frequency","getter_name":"frequency","moor_type":"int","nullable":false,"customConstraints":"NOT NULL","default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"last_used","getter_name":"lastUsed","moor_type":"dateTime","nullable":false,"customConstraints":"NOT 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":"bang_history","was_declared_in_moor":true,"columns":[{"name":"search_query","getter_name":"searchQuery","moor_type":"string","nullable":false,"customConstraints":"UNIQUE NOT NULL","default_dart":null,"default_client_dart":null,"dsl_features":["unique"]},{"name":"trigger","getter_name":"trigger","moor_type":"string","nullable":false,"customConstraints":"NOT NULL REFERENCES bang(\"trigger\")","default_dart":null,"default_client_dart":null,"dsl_features":[{"foreign_key":{"to":{"table":"bang","column":"trigger"},"initially_deferred":false,"on_update":null,"on_delete":null}}]},{"name":"search_date","getter_name":"searchDate","moor_type":"dateTime","nullable":false,"customConstraints":"NOT NULL","default_dart":null,"default_client_dart":null,"dsl_features":[]}],"is_virtual":false,"without_rowid":false,"constraints":[]}},{"id":4,"references":[0],"type":"table","data":{"name":"bang_fts","was_declared_in_moor":true,"columns":[{"name":"trigger","getter_name":"trigger","moor_type":"string","nullable":false,"customConstraints":"","default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"website_name","getter_name":"websiteName","moor_type":"string","nullable":false,"customConstraints":"","default_dart":null,"default_client_dart":null,"dsl_features":[]}],"is_virtual":true,"create_virtual_stmt":"CREATE VIRTUAL TABLE \"bang_fts\" USING fts5(trigger, website_name, content=bang, prefix='2 3')","without_rowid":false,"constraints":[]}},{"id":5,"references":[0,2],"type":"view","data":{"name":"bang_data_view","sql":"CREATE VIEW bang_data_view AS SELECT b.*, bf.frequency, bf.last_used FROM bang AS b LEFT JOIN bang_frequency AS bf ON b.\"trigger\" = bf.\"trigger\";","dart_info_name":"BangDataView","columns":[{"name":"trigger","getter_name":"trigger","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"group","getter_name":"group","moor_type":"int","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const EnumIndexConverter(BangGroup.values)","dart_type_name":"BangGroup"}},{"name":"website_name","getter_name":"websiteName","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"domain","getter_name":"domain","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"url_template","getter_name":"urlTemplate","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"category","getter_name":"category","moor_type":"string","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"sub_category","getter_name":"subCategory","moor_type":"string","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"format","getter_name":"format","moor_type":"string","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const BangFormatConverter()","dart_type_name":"Set?"}},{"name":"frequency","getter_name":"frequency","moor_type":"int","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"last_used","getter_name":"lastUsed","moor_type":"dateTime","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]}]}},{"id":6,"references":[0,4],"type":"trigger","data":{"on":0,"references_in_body":[0,4],"name":"bang_after_insert","sql":"CREATE TRIGGER bang_after_insert AFTER INSERT ON bang BEGIN\n INSERT INTO \n bang_fts(rowid, \"trigger\", website_name) \n VALUES (new.rowid, new.\"trigger\", new.website_name);\nEND;"}},{"id":7,"references":[0,4],"type":"trigger","data":{"on":0,"references_in_body":[0,4],"name":"bang_after_delete","sql":"CREATE TRIGGER bang_after_delete AFTER DELETE ON bang BEGIN\n INSERT INTO \n bang_fts(bang_fts, rowid, \"trigger\", website_name) \n VALUES('delete', old.rowid, old.\"trigger\", old.website_name);\nEND;"}},{"id":8,"references":[0,4],"type":"trigger","data":{"on":0,"references_in_body":[0,4],"name":"bang_after_update","sql":"CREATE TRIGGER bang_after_update AFTER UPDATE ON bang BEGIN\n INSERT INTO \n bang_fts(bang_fts, rowid, \"trigger\", website_name) \n VALUES('delete', old.rowid, old.\"trigger\", old.website_name);\n INSERT INTO \n bang_fts(rowid, \"trigger\", website_name) \n VALUES (new.rowid, new.\"trigger\", new.website_name);\nEND;"}}]} \ No newline at end of file diff --git a/app/drift_schemas/tabs/drift_schema_v2.json b/app/drift_schemas/tabs/drift_schema_v2.json new file mode 100644 index 00000000..71bc9a1f --- /dev/null +++ b/app/drift_schemas/tabs/drift_schema_v2.json @@ -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":"container","was_declared_in_moor":true,"columns":[{"name":"id","getter_name":"id","moor_type":"string","nullable":false,"customConstraints":"PRIMARY KEY NOT NULL","default_dart":null,"default_client_dart":null,"dsl_features":["primary-key"]},{"name":"name","getter_name":"name","moor_type":"string","nullable":true,"customConstraints":"","default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"color","getter_name":"color","moor_type":"int","nullable":false,"customConstraints":"NOT NULL","default_dart":null,"default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const ColorConverter()","dart_type_name":"Color"}},{"name":"metadata","getter_name":"metadata","moor_type":"string","nullable":true,"customConstraints":"","default_dart":null,"default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const ContainerMetadataConverter()","dart_type_name":"ContainerMetadata"}}],"is_virtual":false,"without_rowid":false,"constraints":[]}},{"id":1,"references":[0],"type":"table","data":{"name":"tab","was_declared_in_moor":true,"columns":[{"name":"id","getter_name":"id","moor_type":"string","nullable":false,"customConstraints":"PRIMARY KEY NOT NULL","default_dart":null,"default_client_dart":null,"dsl_features":["primary-key"]},{"name":"parent_id","getter_name":"parentId","moor_type":"string","nullable":true,"customConstraints":"REFERENCES tab(id)ON DELETE SET NULL","default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"container_id","getter_name":"containerId","moor_type":"string","nullable":true,"customConstraints":"REFERENCES container(id)ON DELETE CASCADE","default_dart":null,"default_client_dart":null,"dsl_features":[{"foreign_key":{"to":{"table":"container","column":"id"},"initially_deferred":false,"on_update":null,"on_delete":"cascade"}}]},{"name":"order_key","getter_name":"orderKey","moor_type":"string","nullable":false,"customConstraints":"NOT NULL","default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"url","getter_name":"url","moor_type":"string","nullable":true,"customConstraints":"","default_dart":null,"default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const UriConverterNullable()","dart_type_name":"Uri?"}},{"name":"title","getter_name":"title","moor_type":"string","nullable":true,"customConstraints":"","default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"is_probably_readerable","getter_name":"isProbablyReaderable","moor_type":"bool","nullable":true,"customConstraints":"","default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"extracted_content_markdown","getter_name":"extractedContentMarkdown","moor_type":"string","nullable":true,"customConstraints":"","default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"extracted_content_plain","getter_name":"extractedContentPlain","moor_type":"string","nullable":true,"customConstraints":"","default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"full_content_markdown","getter_name":"fullContentMarkdown","moor_type":"string","nullable":true,"customConstraints":"","default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"full_content_plain","getter_name":"fullContentPlain","moor_type":"string","nullable":true,"customConstraints":"","default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"timestamp","getter_name":"timestamp","moor_type":"dateTime","nullable":false,"customConstraints":"NOT NULL","default_dart":null,"default_client_dart":null,"dsl_features":[]}],"is_virtual":false,"without_rowid":false,"constraints":[]}},{"id":2,"references":[1],"type":"table","data":{"name":"tab_fts","was_declared_in_moor":true,"columns":[{"name":"title","getter_name":"title","moor_type":"string","nullable":false,"customConstraints":"","default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"url","getter_name":"url","moor_type":"string","nullable":false,"customConstraints":"","default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"extracted_content_plain","getter_name":"extractedContentPlain","moor_type":"string","nullable":false,"customConstraints":"","default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"full_content_plain","getter_name":"fullContentPlain","moor_type":"string","nullable":false,"customConstraints":"","default_dart":null,"default_client_dart":null,"dsl_features":[]}],"is_virtual":true,"create_virtual_stmt":"CREATE VIRTUAL TABLE \"tab_fts\" USING fts5(title, url, extracted_content_plain, full_content_plain, content=tab, tokenize=\"trigram\")","without_rowid":false,"constraints":[]}},{"id":3,"references":[1],"type":"trigger","data":{"on":1,"references_in_body":[1],"name":"tab_maintain_parent_chain_on_delete","sql":"CREATE TRIGGER tab_maintain_parent_chain_on_delete BEFORE DELETE ON tab BEGIN\n -- Update all children of the deleted row to point to its parent\n UPDATE tab \n SET parent_id = OLD.parent_id \n WHERE parent_id = OLD.id;\nEND;"}},{"id":4,"references":[1,2],"type":"trigger","data":{"on":1,"references_in_body":[1,2],"name":"tab_after_insert","sql":"CREATE TRIGGER tab_after_insert AFTER INSERT ON tab BEGIN\n INSERT INTO \n tab_fts(rowid, title, url, extracted_content_plain, full_content_plain) \n VALUES (new.rowid, new.title, new.url, new.extracted_content_plain, new.full_content_plain);\nEND;"}},{"id":5,"references":[1,2],"type":"trigger","data":{"on":1,"references_in_body":[1,2],"name":"tab_after_delete","sql":"CREATE TRIGGER tab_after_delete AFTER DELETE ON tab BEGIN\n INSERT INTO \n tab_fts(tab_fts, rowid, title, url, extracted_content_plain, full_content_plain) \n VALUES('delete', old.rowid, old.title, old.url, old.extracted_content_plain, old.full_content_plain);\nEND;"}},{"id":6,"references":[1,2],"type":"trigger","data":{"on":1,"references_in_body":[1,2],"name":"tab_after_update","sql":"CREATE TRIGGER tab_after_update AFTER UPDATE ON tab BEGIN\n INSERT INTO \n tab_fts(tab_fts, rowid, title, url, extracted_content_plain, full_content_plain) \n VALUES('delete', old.rowid, old.title, old.url, old.extracted_content_plain, old.full_content_plain);\n INSERT INTO \n tab_fts(rowid, title, url, extracted_content_plain, full_content_plain) \n VALUES (new.rowid, new.title, new.url, new.extracted_content_plain, new.full_content_plain);\nEND;"}}]} \ No newline at end of file diff --git a/app/drift_schemas/user/drift_schema_v1.json b/app/drift_schemas/user/drift_schema_v1.json new file mode 100644 index 00000000..a4cd75e9 --- /dev/null +++ b/app/drift_schemas/user/drift_schema_v1.json @@ -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":"setting","was_declared_in_moor":true,"columns":[{"name":"key","getter_name":"key","moor_type":"string","nullable":false,"customConstraints":"PRIMARY KEY NOT NULL","default_dart":null,"default_client_dart":null,"dsl_features":["primary-key"]},{"name":"partition_key","getter_name":"partitionKey","moor_type":"string","nullable":true,"customConstraints":"","default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"value","getter_name":"value","moor_type":"any","nullable":true,"customConstraints":"","default_dart":null,"default_client_dart":null,"dsl_features":[]}],"is_virtual":false,"without_rowid":false,"constraints":[],"strict":true}},{"id":1,"references":[],"type":"table","data":{"name":"icon_cache","was_declared_in_moor":true,"columns":[{"name":"origin","getter_name":"origin","moor_type":"string","nullable":false,"customConstraints":"PRIMARY KEY NOT NULL","default_dart":null,"default_client_dart":null,"dsl_features":["primary-key"]},{"name":"icon_data","getter_name":"iconData","moor_type":"blob","nullable":false,"customConstraints":"NOT NULL","default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"fetch_date","getter_name":"fetchDate","moor_type":"dateTime","nullable":false,"customConstraints":"NOT NULL","default_dart":null,"default_client_dart":null,"dsl_features":[]}],"is_virtual":false,"without_rowid":false,"constraints":[]}},{"id":2,"references":[],"type":"table","data":{"name":"onboarding","was_declared_in_moor":true,"columns":[{"name":"revision","getter_name":"revision","moor_type":"int","nullable":false,"customConstraints":"NOT NULL","default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"completion_date","getter_name":"completionDate","moor_type":"dateTime","nullable":false,"customConstraints":"NOT NULL","default_dart":null,"default_client_dart":null,"dsl_features":[]}],"is_virtual":false,"without_rowid":false,"constraints":[]}}]} \ No newline at end of file diff --git a/app/drift_schemas/user/drift_schema_v2.json b/app/drift_schemas/user/drift_schema_v2.json new file mode 100644 index 00000000..33c1e31f --- /dev/null +++ b/app/drift_schemas/user/drift_schema_v2.json @@ -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":"setting","was_declared_in_moor":true,"columns":[{"name":"key","getter_name":"key","moor_type":"string","nullable":false,"customConstraints":"PRIMARY KEY NOT NULL","default_dart":null,"default_client_dart":null,"dsl_features":["primary-key"]},{"name":"partition_key","getter_name":"partitionKey","moor_type":"string","nullable":true,"customConstraints":"","default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"value","getter_name":"value","moor_type":"any","nullable":true,"customConstraints":"","default_dart":null,"default_client_dart":null,"dsl_features":[]}],"is_virtual":false,"without_rowid":false,"constraints":[],"strict":true}},{"id":1,"references":[],"type":"table","data":{"name":"icon_cache","was_declared_in_moor":true,"columns":[{"name":"origin","getter_name":"origin","moor_type":"string","nullable":false,"customConstraints":"PRIMARY KEY NOT NULL","default_dart":null,"default_client_dart":null,"dsl_features":["primary-key"]},{"name":"icon_data","getter_name":"iconData","moor_type":"blob","nullable":false,"customConstraints":"NOT NULL","default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"fetch_date","getter_name":"fetchDate","moor_type":"dateTime","nullable":false,"customConstraints":"NOT NULL","default_dart":null,"default_client_dart":null,"dsl_features":[]}],"is_virtual":false,"without_rowid":false,"constraints":[]}},{"id":2,"references":[],"type":"table","data":{"name":"onboarding","was_declared_in_moor":true,"columns":[{"name":"revision","getter_name":"revision","moor_type":"int","nullable":false,"customConstraints":"NOT NULL","default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"completion_date","getter_name":"completionDate","moor_type":"dateTime","nullable":false,"customConstraints":"NOT NULL","default_dart":null,"default_client_dart":null,"dsl_features":[]}],"is_virtual":false,"without_rowid":false,"constraints":[]}},{"id":3,"references":[],"type":"table","data":{"name":"riverpod","was_declared_in_moor":true,"columns":[{"name":"key","getter_name":"key","moor_type":"string","nullable":false,"customConstraints":"PRIMARY KEY NOT NULL","default_dart":null,"default_client_dart":null,"dsl_features":["primary-key"]},{"name":"json","getter_name":"json","moor_type":"string","nullable":false,"customConstraints":"NOT NULL","default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"expireAt","getter_name":"expireAt","moor_type":"dateTime","nullable":true,"customConstraints":"","default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"destroyKey","getter_name":"destroyKey","moor_type":"string","nullable":true,"customConstraints":"","default_dart":null,"default_client_dart":null,"dsl_features":[]}],"is_virtual":false,"without_rowid":true,"constraints":[]}}]} \ No newline at end of file diff --git a/app/drift_schemas/web_feed/drift_schema_v1.json b/app/drift_schemas/web_feed/drift_schema_v1.json new file mode 100644 index 00000000..18eddcf1 --- /dev/null +++ b/app/drift_schemas/web_feed/drift_schema_v1.json @@ -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":"feed","was_declared_in_moor":true,"columns":[{"name":"url","getter_name":"url","moor_type":"string","nullable":false,"customConstraints":"PRIMARY KEY NOT NULL","default_dart":null,"default_client_dart":null,"dsl_features":["primary-key"],"type_converter":{"dart_expr":"const UriConverter()","dart_type_name":"Uri"}},{"name":"title","getter_name":"title","moor_type":"string","nullable":true,"customConstraints":"","default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"description","getter_name":"description","moor_type":"string","nullable":true,"customConstraints":"","default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"icon","getter_name":"icon","moor_type":"string","nullable":true,"customConstraints":"","default_dart":null,"default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const UriConverterNullable()","dart_type_name":"Uri?"}},{"name":"site_link","getter_name":"siteLink","moor_type":"string","nullable":true,"customConstraints":"","default_dart":null,"default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const UriConverterNullable()","dart_type_name":"Uri?"}},{"name":"authors","getter_name":"authors","moor_type":"string","nullable":true,"customConstraints":"","default_dart":null,"default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const FeedAuthorsConverter()","dart_type_name":"List"}},{"name":"tags","getter_name":"tags","moor_type":"string","nullable":true,"customConstraints":"","default_dart":null,"default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const FeedCategoriesConverter()","dart_type_name":"List"}},{"name":"last_fetched","getter_name":"lastFetched","moor_type":"dateTime","nullable":true,"customConstraints":"","default_dart":null,"default_client_dart":null,"dsl_features":[]}],"is_virtual":false,"without_rowid":false,"constraints":[]}},{"id":1,"references":[0],"type":"table","data":{"name":"article","was_declared_in_moor":true,"columns":[{"name":"id","getter_name":"id","moor_type":"string","nullable":false,"customConstraints":"PRIMARY KEY NOT NULL","default_dart":null,"default_client_dart":null,"dsl_features":["primary-key"]},{"name":"feed_id","getter_name":"feedId","moor_type":"string","nullable":false,"customConstraints":"NOT NULL REFERENCES feed(url)ON DELETE CASCADE","default_dart":null,"default_client_dart":null,"dsl_features":[{"foreign_key":{"to":{"table":"feed","column":"url"},"initially_deferred":false,"on_update":null,"on_delete":"cascade"}}],"type_converter":{"dart_expr":"const UriConverter()","dart_type_name":"Uri"}},{"name":"fetched","getter_name":"fetched","moor_type":"dateTime","nullable":false,"customConstraints":"NOT NULL","default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"created","getter_name":"created","moor_type":"dateTime","nullable":true,"customConstraints":"","default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"updated","getter_name":"updated","moor_type":"dateTime","nullable":true,"customConstraints":"","default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"last_read","getter_name":"lastRead","moor_type":"dateTime","nullable":true,"customConstraints":"","default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"title","getter_name":"title","moor_type":"string","nullable":true,"customConstraints":"","default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"authors","getter_name":"authors","moor_type":"string","nullable":true,"customConstraints":"","default_dart":null,"default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const FeedAuthorsConverter()","dart_type_name":"List"}},{"name":"tags","getter_name":"tags","moor_type":"string","nullable":true,"customConstraints":"","default_dart":null,"default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const FeedCategoriesConverter()","dart_type_name":"List"}},{"name":"links","getter_name":"links","moor_type":"string","nullable":true,"customConstraints":"","default_dart":null,"default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const FeedLinksConverter()","dart_type_name":"List"}},{"name":"summaryHtml","getter_name":"summaryHtml","moor_type":"string","nullable":true,"customConstraints":"","default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"summaryMarkdown","getter_name":"summaryMarkdown","moor_type":"string","nullable":true,"customConstraints":"","default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"summaryPlain","getter_name":"summaryPlain","moor_type":"string","nullable":true,"customConstraints":"","default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"contentHtml","getter_name":"contentHtml","moor_type":"string","nullable":true,"customConstraints":"","default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"contentMarkdown","getter_name":"contentMarkdown","moor_type":"string","nullable":true,"customConstraints":"","default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"contentPlain","getter_name":"contentPlain","moor_type":"string","nullable":true,"customConstraints":"","default_dart":null,"default_client_dart":null,"dsl_features":[]}],"is_virtual":false,"without_rowid":false,"constraints":[]}},{"id":2,"references":[1,0],"type":"view","data":{"name":"article_view","sql":"CREATE VIEW article_view AS SELECT a.*, f.icon, f.site_link FROM article AS a INNER JOIN feed AS f ON f.url = a.feed_id;","dart_info_name":"ArticleView","columns":[{"name":"id","getter_name":"id","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"feed_id","getter_name":"feedId","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const UriConverter()","dart_type_name":"Uri"}},{"name":"fetched","getter_name":"fetched","moor_type":"dateTime","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"created","getter_name":"created","moor_type":"dateTime","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"updated","getter_name":"updated","moor_type":"dateTime","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"last_read","getter_name":"lastRead","moor_type":"dateTime","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":"authors","getter_name":"authors","moor_type":"string","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const FeedAuthorsConverter()","dart_type_name":"List"}},{"name":"tags","getter_name":"tags","moor_type":"string","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const FeedCategoriesConverter()","dart_type_name":"List"}},{"name":"links","getter_name":"links","moor_type":"string","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const FeedLinksConverter()","dart_type_name":"List"}},{"name":"summaryHtml","getter_name":"summaryHtml","moor_type":"string","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"summaryMarkdown","getter_name":"summaryMarkdown","moor_type":"string","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"summaryPlain","getter_name":"summaryPlain","moor_type":"string","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"contentHtml","getter_name":"contentHtml","moor_type":"string","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"contentMarkdown","getter_name":"contentMarkdown","moor_type":"string","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"contentPlain","getter_name":"contentPlain","moor_type":"string","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"icon","getter_name":"icon","moor_type":"string","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const UriConverterNullable()","dart_type_name":"Uri?"}},{"name":"site_link","getter_name":"siteLink","moor_type":"string","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const UriConverterNullable()","dart_type_name":"Uri?"}}]}},{"id":3,"references":[1],"type":"index","data":{"on":1,"name":"article_feed_id","sql":"CREATE INDEX article_feed_id ON article (feed_id);","unique":false,"columns":[]}},{"id":4,"references":[1],"type":"table","data":{"name":"article_fts","was_declared_in_moor":true,"columns":[{"name":"title","getter_name":"title","moor_type":"string","nullable":false,"customConstraints":"","default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"summaryPlain","getter_name":"summaryPlain","moor_type":"string","nullable":false,"customConstraints":"","default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"contentPlain","getter_name":"contentPlain","moor_type":"string","nullable":false,"customConstraints":"","default_dart":null,"default_client_dart":null,"dsl_features":[]}],"is_virtual":true,"create_virtual_stmt":"CREATE VIRTUAL TABLE \"article_fts\" USING fts5(title, summaryPlain, contentPlain, content=article, tokenize=\"trigram\")","without_rowid":false,"constraints":[]}},{"id":5,"references":[1,4],"type":"trigger","data":{"on":1,"references_in_body":[1,4],"name":"article_after_insert","sql":"CREATE TRIGGER article_after_insert AFTER INSERT ON article BEGIN\n INSERT INTO \n article_fts(rowid, title, summaryPlain, contentPlain) \n VALUES (new.rowid, new.title, new.summaryPlain, new.contentPlain);\nEND;"}},{"id":6,"references":[1,4],"type":"trigger","data":{"on":1,"references_in_body":[1,4],"name":"article_after_delete","sql":"CREATE TRIGGER article_after_delete AFTER DELETE ON article BEGIN\n INSERT INTO \n article_fts(article_fts, rowid, title, summaryPlain, contentPlain) \n VALUES('delete', old.rowid, old.title, old.summaryPlain, old.contentPlain);\nEND;"}},{"id":7,"references":[1,4],"type":"trigger","data":{"on":1,"references_in_body":[1,4],"name":"article_after_update","sql":"CREATE TRIGGER article_after_update AFTER UPDATE ON article BEGIN\n INSERT INTO \n article_fts(article_fts, rowid, title, summaryPlain, contentPlain) \n VALUES('delete', old.rowid, old.title, old.summaryPlain, old.contentPlain);\n INSERT INTO \n article_fts(rowid, title, summaryPlain, contentPlain) \n VALUES (new.rowid, new.title, new.summaryPlain, new.contentPlain);\nEND;"}}]} \ No newline at end of file