{ "_meta": { "description": "This file contains a serialized version of schema entities for drift.", "version": "1.3.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;" } } ], "fixed_sql": [ { "name": "feed", "sql": [ { "dialect": "sqlite", "sql": "CREATE TABLE IF NOT EXISTS \"feed\" (\"url\" TEXT PRIMARY KEY NOT NULL, \"title\" TEXT, \"description\" TEXT, \"icon\" TEXT, \"site_link\" TEXT, \"authors\" TEXT, \"tags\" TEXT, \"last_fetched\" INTEGER);" } ] }, { "name": "article", "sql": [ { "dialect": "sqlite", "sql": "CREATE TABLE IF NOT EXISTS \"article\" (\"id\" TEXT PRIMARY KEY NOT NULL, \"feed_id\" TEXT NOT NULL REFERENCES feed(url)ON DELETE CASCADE, \"fetched\" INTEGER NOT NULL, \"created\" INTEGER, \"updated\" INTEGER, \"last_read\" INTEGER, \"title\" TEXT, \"authors\" TEXT, \"tags\" TEXT, \"links\" TEXT, \"summaryHtml\" TEXT, \"summaryMarkdown\" TEXT, \"summaryPlain\" TEXT, \"contentHtml\" TEXT, \"contentMarkdown\" TEXT, \"contentPlain\" TEXT);" } ] }, { "name": "article_view", "sql": [ { "dialect": "sqlite", "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" } ] }, { "name": "article_feed_id", "sql": [ { "dialect": "sqlite", "sql": "CREATE INDEX article_feed_id ON article (feed_id)" } ] }, { "name": "article_fts", "sql": [ { "dialect": "sqlite", "sql": "CREATE VIRTUAL TABLE IF NOT EXISTS \"article_fts\" USING fts5(title, summaryPlain, contentPlain, content=article, tokenize=\"trigram\");" } ] }, { "name": "article_after_insert", "sql": [ { "dialect": "sqlite", "sql": "CREATE TRIGGER article_after_insert AFTER INSERT ON article BEGIN INSERT INTO article_fts (\"rowid\", title, summaryPlain, contentPlain) VALUES (new.\"rowid\", new.title, new.summaryPlain, new.contentPlain);END" } ] }, { "name": "article_after_delete", "sql": [ { "dialect": "sqlite", "sql": "CREATE TRIGGER article_after_delete AFTER DELETE ON article BEGIN INSERT INTO article_fts (article_fts, \"rowid\", title, summaryPlain, contentPlain) VALUES ('delete', old.\"rowid\", old.title, old.summaryPlain, old.contentPlain);END" } ] }, { "name": "article_after_update", "sql": [ { "dialect": "sqlite", "sql": "CREATE TRIGGER article_after_update AFTER UPDATE ON article BEGIN INSERT INTO article_fts (article_fts, \"rowid\", title, summaryPlain, contentPlain) VALUES ('delete', old.\"rowid\", old.title, old.summaryPlain, old.contentPlain);INSERT INTO article_fts (\"rowid\", title, summaryPlain, contentPlain) VALUES (new.\"rowid\", new.title, new.summaryPlain, new.contentPlain);END" } ] } ] }