prepare for multiple apps

This commit is contained in:
Fabian Freund
2026-04-06 12:23:11 +02:00
parent bd1600e8dc
commit 5afc323f04
904 changed files with 29 additions and 29 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,892 @@
{
"_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": "bang",
"was_declared_in_moor": true,
"columns": [
{
"name": "trigger",
"getter_name": "trigger",
"moor_type": "string",
"nullable": false,
"customConstraints": "NOT NULL",
"default_dart": null,
"default_client_dart": null,
"dsl_features": []
},
{
"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>(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<BangFormat>?"
}
},
{
"name": "additional_triggers",
"getter_name": "additionalTriggers",
"moor_type": "string",
"nullable": true,
"customConstraints": "",
"default_dart": null,
"default_client_dart": null,
"dsl_features": [],
"type_converter": {
"dart_expr": "const TriggerListConverter()",
"dart_type_name": "Set<String>?"
}
},
{
"name": "searxng_api",
"getter_name": "searxngApi",
"moor_type": "bool",
"nullable": false,
"customConstraints": "NOT NULL DEFAULT FALSE",
"default_dart": "const CustomExpression('FALSE')",
"default_client_dart": null,
"dsl_features": []
}
],
"is_virtual": false,
"without_rowid": false,
"constraints": [
"PRIMARY KEY(\"trigger\", \"group\")"
],
"explicit_pk": [
"trigger",
"group"
]
}
},
{
"id": 1,
"references": [
0
],
"type": "table",
"data": {
"name": "bang_triggers",
"was_declared_in_moor": true,
"columns": [
{
"name": "trigger",
"getter_name": "trigger",
"moor_type": "string",
"nullable": false,
"customConstraints": "NOT NULL",
"default_dart": null,
"default_client_dart": null,
"dsl_features": []
},
{
"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>(BangGroup.values)",
"dart_type_name": "BangGroup"
}
},
{
"name": "additional_trigger",
"getter_name": "additionalTrigger",
"moor_type": "string",
"nullable": false,
"customConstraints": "NOT NULL",
"default_dart": null,
"default_client_dart": null,
"dsl_features": []
}
],
"is_virtual": false,
"without_rowid": false,
"constraints": [
"PRIMARY KEY(\"trigger\", \"group\", additional_trigger)",
"FOREIGN KEY(\"trigger\", \"group\")REFERENCES bang(\"trigger\", \"group\")ON DELETE CASCADE"
],
"explicit_pk": [
"trigger",
"group",
"additional_trigger"
]
}
},
{
"id": 2,
"references": [
1
],
"type": "index",
"data": {
"on": 1,
"name": "idx_bang_triggers_lookup",
"sql": "CREATE INDEX idx_bang_triggers_lookup ON bang_triggers (additional_trigger, \"group\");",
"unique": false,
"columns": []
}
},
{
"id": 3,
"references": [
0,
1
],
"type": "trigger",
"data": {
"on": 0,
"references_in_body": [
0,
1
],
"name": "bang_triggers_after_insert",
"sql": "CREATE TRIGGER bang_triggers_after_insert AFTER INSERT ON bang \nWHEN new.additional_triggers IS NOT NULL\nBEGIN\n INSERT INTO bang_triggers(\"trigger\", \"group\", additional_trigger)\n SELECT \n new.\"trigger\",\n new.\"group\",\n json_each.value\n FROM json_each(new.additional_triggers);\nEND;"
}
},
{
"id": 4,
"references": [
0,
1
],
"type": "trigger",
"data": {
"on": 0,
"references_in_body": [
0,
1
],
"name": "bang_triggers_after_update",
"sql": "CREATE TRIGGER bang_triggers_after_update AFTER UPDATE ON bang BEGIN\n -- Delete old additional triggers\n DELETE FROM bang_triggers \n WHERE \"trigger\" = old.\"trigger\" AND \"group\" = old.\"group\";\n\n -- Insert new additional triggers if they exist\n INSERT INTO bang_triggers(\"trigger\", \"group\", additional_trigger)\n SELECT \n new.\"trigger\",\n new.\"group\",\n json_each.value\n FROM json_each(new.additional_triggers)\n WHERE new.additional_triggers IS NOT NULL;\nEND;"
}
},
{
"id": 5,
"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>(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": 6,
"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": "NOT NULL",
"default_dart": null,
"default_client_dart": null,
"dsl_features": []
},
{
"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>(BangGroup.values)",
"dart_type_name": "BangGroup"
}
},
{
"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": [
"PRIMARY KEY(\"trigger\", \"group\")",
"FOREIGN KEY(\"trigger\", \"group\")REFERENCES bang(\"trigger\", \"group\")ON DELETE CASCADE"
],
"explicit_pk": [
"trigger",
"group"
]
}
},
{
"id": 7,
"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",
"default_dart": null,
"default_client_dart": null,
"dsl_features": []
},
{
"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>(BangGroup.values)",
"dart_type_name": "BangGroup"
}
},
{
"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": [
"FOREIGN KEY(\"trigger\", \"group\")REFERENCES bang(\"trigger\", \"group\")ON DELETE CASCADE"
]
}
},
{
"id": 8,
"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": 9,
"references": [
1
],
"type": "table",
"data": {
"name": "bang_triggers_fts",
"was_declared_in_moor": true,
"columns": [
{
"name": "additional_trigger",
"getter_name": "additionalTrigger",
"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_triggers_fts\" USING fts5(additional_trigger, content=bang_triggers, prefix='2 3')",
"without_rowid": false,
"constraints": []
}
},
{
"id": 10,
"references": [
0,
6
],
"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\" AND b.\"group\" = bf.\"group\"",
"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>(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<BangFormat>?"
}
},
{
"name": "additional_triggers",
"getter_name": "additionalTriggers",
"moor_type": "string",
"nullable": true,
"customConstraints": null,
"default_dart": null,
"default_client_dart": null,
"dsl_features": [],
"type_converter": {
"dart_expr": "const TriggerListConverter()",
"dart_type_name": "Set<String>?"
}
},
{
"name": "searxng_api",
"getter_name": "searxngApi",
"moor_type": "bool",
"nullable": false,
"customConstraints": null,
"defaultConstraints": "CHECK (\"searxng_api\" IN (0, 1))",
"dialectAwareDefaultConstraints": {
"sqlite": "CHECK (\"searxng_api\" IN (0, 1))"
},
"default_dart": null,
"default_client_dart": null,
"dsl_features": []
},
{
"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": 11,
"references": [
0,
8
],
"type": "trigger",
"data": {
"on": 0,
"references_in_body": [
0,
8
],
"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": 12,
"references": [
0,
8
],
"type": "trigger",
"data": {
"on": 0,
"references_in_body": [
0,
8
],
"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": 13,
"references": [
0,
8
],
"type": "trigger",
"data": {
"on": 0,
"references_in_body": [
0,
8
],
"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;"
}
},
{
"id": 14,
"references": [
1,
9
],
"type": "trigger",
"data": {
"on": 1,
"references_in_body": [
1,
9
],
"name": "bang_triggers_after_insert_fts",
"sql": "CREATE TRIGGER bang_triggers_after_insert_fts AFTER INSERT ON bang_triggers BEGIN\n INSERT INTO \n bang_triggers_fts(rowid, additional_trigger) \n VALUES (new.rowid, new.additional_trigger);\nEND;"
}
},
{
"id": 15,
"references": [
1,
9
],
"type": "trigger",
"data": {
"on": 1,
"references_in_body": [
1,
9
],
"name": "bang_triggers_after_delete_fts",
"sql": "CREATE TRIGGER bang_triggers_after_delete_fts AFTER DELETE ON bang_triggers BEGIN\n INSERT INTO \n bang_triggers_fts(bang_triggers_fts, rowid, additional_trigger) \n VALUES('delete', old.rowid, old.additional_trigger);\nEND;"
}
},
{
"id": 16,
"references": [
1,
9
],
"type": "trigger",
"data": {
"on": 1,
"references_in_body": [
1,
9
],
"name": "bang_triggers_after_update_fts",
"sql": "CREATE TRIGGER bang_triggers_after_update_fts AFTER UPDATE ON bang_triggers BEGIN\n INSERT INTO \n bang_triggers_fts(bang_triggers_fts, rowid, additional_trigger) \n VALUES('delete', old.rowid, old.additional_trigger);\n INSERT INTO \n bang_triggers_fts(rowid, additional_trigger) \n VALUES (new.rowid, new.additional_trigger);\nEND;"
}
}
],
"fixed_sql": [
{
"name": "bang",
"sql": [
{
"dialect": "sqlite",
"sql": "CREATE TABLE IF NOT EXISTS \"bang\" (\"trigger\" TEXT NOT NULL, \"group\" INTEGER NOT NULL, \"website_name\" TEXT NOT NULL, \"domain\" TEXT NOT NULL, \"url_template\" TEXT NOT NULL, \"category\" TEXT, \"sub_category\" TEXT, \"format\" TEXT, \"additional_triggers\" TEXT, \"searxng_api\" INTEGER NOT NULL DEFAULT FALSE, PRIMARY KEY(\"trigger\", \"group\"));"
}
]
},
{
"name": "bang_triggers",
"sql": [
{
"dialect": "sqlite",
"sql": "CREATE TABLE IF NOT EXISTS \"bang_triggers\" (\"trigger\" TEXT NOT NULL, \"group\" INTEGER NOT NULL, \"additional_trigger\" TEXT NOT NULL, PRIMARY KEY(\"trigger\", \"group\", additional_trigger), FOREIGN KEY(\"trigger\", \"group\")REFERENCES bang(\"trigger\", \"group\")ON DELETE CASCADE);"
}
]
},
{
"name": "idx_bang_triggers_lookup",
"sql": [
{
"dialect": "sqlite",
"sql": "CREATE INDEX idx_bang_triggers_lookup ON bang_triggers (additional_trigger, \"group\")"
}
]
},
{
"name": "bang_triggers_after_insert",
"sql": [
{
"dialect": "sqlite",
"sql": "CREATE TRIGGER bang_triggers_after_insert AFTER INSERT ON bang WHEN new.additional_triggers IS NOT NULL BEGIN INSERT INTO bang_triggers (\"trigger\", \"group\", additional_trigger) SELECT new.\"trigger\", new.\"group\", json_each.value FROM json_each(new.additional_triggers);END"
}
]
},
{
"name": "bang_triggers_after_update",
"sql": [
{
"dialect": "sqlite",
"sql": "CREATE TRIGGER bang_triggers_after_update AFTER UPDATE ON bang BEGIN DELETE FROM bang_triggers WHERE \"trigger\" = old.\"trigger\" AND \"group\" = old.\"group\";INSERT INTO bang_triggers (\"trigger\", \"group\", additional_trigger) SELECT new.\"trigger\", new.\"group\", json_each.value FROM json_each(new.additional_triggers)WHERE new.additional_triggers IS NOT NULL;END"
}
]
},
{
"name": "bang_sync",
"sql": [
{
"dialect": "sqlite",
"sql": "CREATE TABLE IF NOT EXISTS \"bang_sync\" (\"group\" INTEGER PRIMARY KEY NOT NULL, \"last_sync\" INTEGER NOT NULL);"
}
]
},
{
"name": "bang_frequency",
"sql": [
{
"dialect": "sqlite",
"sql": "CREATE TABLE IF NOT EXISTS \"bang_frequency\" (\"trigger\" TEXT NOT NULL, \"group\" INTEGER NOT NULL, \"frequency\" INTEGER NOT NULL, \"last_used\" INTEGER NOT NULL, PRIMARY KEY(\"trigger\", \"group\"), FOREIGN KEY(\"trigger\", \"group\")REFERENCES bang(\"trigger\", \"group\")ON DELETE CASCADE);"
}
]
},
{
"name": "bang_history",
"sql": [
{
"dialect": "sqlite",
"sql": "CREATE TABLE IF NOT EXISTS \"bang_history\" (\"search_query\" TEXT UNIQUE NOT NULL, \"trigger\" TEXT NOT NULL, \"group\" INTEGER NOT NULL, \"search_date\" INTEGER NOT NULL, FOREIGN KEY(\"trigger\", \"group\")REFERENCES bang(\"trigger\", \"group\")ON DELETE CASCADE);"
}
]
},
{
"name": "bang_fts",
"sql": [
{
"dialect": "sqlite",
"sql": "CREATE VIRTUAL TABLE IF NOT EXISTS \"bang_fts\" USING fts5(trigger, website_name, content=bang, prefix='2 3');"
}
]
},
{
"name": "bang_triggers_fts",
"sql": [
{
"dialect": "sqlite",
"sql": "CREATE VIRTUAL TABLE IF NOT EXISTS \"bang_triggers_fts\" USING fts5(additional_trigger, content=bang_triggers, prefix='2 3');"
}
]
},
{
"name": "bang_data_view",
"sql": [
{
"dialect": "sqlite",
"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\" AND b.\"group\" = bf.\"group\""
}
]
},
{
"name": "bang_after_insert",
"sql": [
{
"dialect": "sqlite",
"sql": "CREATE TRIGGER bang_after_insert AFTER INSERT ON bang BEGIN INSERT INTO bang_fts (\"rowid\", \"trigger\", website_name) VALUES (new.\"rowid\", new.\"trigger\", new.website_name);END"
}
]
},
{
"name": "bang_after_delete",
"sql": [
{
"dialect": "sqlite",
"sql": "CREATE TRIGGER bang_after_delete AFTER DELETE ON bang BEGIN INSERT INTO bang_fts (bang_fts, \"rowid\", \"trigger\", website_name) VALUES ('delete', old.\"rowid\", old.\"trigger\", old.website_name);END"
}
]
},
{
"name": "bang_after_update",
"sql": [
{
"dialect": "sqlite",
"sql": "CREATE TRIGGER bang_after_update AFTER UPDATE ON bang BEGIN INSERT INTO bang_fts (bang_fts, \"rowid\", \"trigger\", website_name) VALUES ('delete', old.\"rowid\", old.\"trigger\", old.website_name);INSERT INTO bang_fts (\"rowid\", \"trigger\", website_name) VALUES (new.\"rowid\", new.\"trigger\", new.website_name);END"
}
]
},
{
"name": "bang_triggers_after_insert_fts",
"sql": [
{
"dialect": "sqlite",
"sql": "CREATE TRIGGER bang_triggers_after_insert_fts AFTER INSERT ON bang_triggers BEGIN INSERT INTO bang_triggers_fts (\"rowid\", additional_trigger) VALUES (new.\"rowid\", new.additional_trigger);END"
}
]
},
{
"name": "bang_triggers_after_delete_fts",
"sql": [
{
"dialect": "sqlite",
"sql": "CREATE TRIGGER bang_triggers_after_delete_fts AFTER DELETE ON bang_triggers BEGIN INSERT INTO bang_triggers_fts (bang_triggers_fts, \"rowid\", additional_trigger) VALUES ('delete', old.\"rowid\", old.additional_trigger);END"
}
]
},
{
"name": "bang_triggers_after_update_fts",
"sql": [
{
"dialect": "sqlite",
"sql": "CREATE TRIGGER bang_triggers_after_update_fts AFTER UPDATE ON bang_triggers BEGIN INSERT INTO bang_triggers_fts (bang_triggers_fts, \"rowid\", additional_trigger) VALUES ('delete', old.\"rowid\", old.additional_trigger);INSERT INTO bang_triggers_fts (\"rowid\", additional_trigger) VALUES (new.\"rowid\", new.additional_trigger);END"
}
]
}
]
}
@@ -0,0 +1,912 @@
{
"_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": "bang",
"was_declared_in_moor": true,
"columns": [
{
"name": "trigger",
"getter_name": "trigger",
"moor_type": "string",
"nullable": false,
"customConstraints": "NOT NULL",
"default_dart": null,
"default_client_dart": null,
"dsl_features": []
},
{
"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>(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<BangFormat>?"
}
},
{
"name": "additional_triggers",
"getter_name": "additionalTriggers",
"moor_type": "string",
"nullable": true,
"customConstraints": "",
"default_dart": null,
"default_client_dart": null,
"dsl_features": [],
"type_converter": {
"dart_expr": "const TriggerListConverter()",
"dart_type_name": "Set<String>?"
}
},
{
"name": "searxng_api",
"getter_name": "searxngApi",
"moor_type": "bool",
"nullable": false,
"customConstraints": "NOT NULL DEFAULT FALSE",
"default_dart": "const CustomExpression('FALSE')",
"default_client_dart": null,
"dsl_features": []
},
{
"name": "snap_domain",
"getter_name": "snapDomain",
"moor_type": "string",
"nullable": true,
"customConstraints": "",
"default_dart": null,
"default_client_dart": null,
"dsl_features": []
}
],
"is_virtual": false,
"without_rowid": false,
"constraints": [
"PRIMARY KEY(\"trigger\", \"group\")"
],
"explicit_pk": [
"trigger",
"group"
]
}
},
{
"id": 1,
"references": [
0
],
"type": "table",
"data": {
"name": "bang_triggers",
"was_declared_in_moor": true,
"columns": [
{
"name": "trigger",
"getter_name": "trigger",
"moor_type": "string",
"nullable": false,
"customConstraints": "NOT NULL",
"default_dart": null,
"default_client_dart": null,
"dsl_features": []
},
{
"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>(BangGroup.values)",
"dart_type_name": "BangGroup"
}
},
{
"name": "additional_trigger",
"getter_name": "additionalTrigger",
"moor_type": "string",
"nullable": false,
"customConstraints": "NOT NULL",
"default_dart": null,
"default_client_dart": null,
"dsl_features": []
}
],
"is_virtual": false,
"without_rowid": false,
"constraints": [
"PRIMARY KEY(\"trigger\", \"group\", additional_trigger)",
"FOREIGN KEY(\"trigger\", \"group\")REFERENCES bang(\"trigger\", \"group\")ON DELETE CASCADE"
],
"explicit_pk": [
"trigger",
"group",
"additional_trigger"
]
}
},
{
"id": 2,
"references": [
1
],
"type": "index",
"data": {
"on": 1,
"name": "idx_bang_triggers_lookup",
"sql": "CREATE INDEX idx_bang_triggers_lookup ON bang_triggers (additional_trigger, \"group\");",
"unique": false,
"columns": []
}
},
{
"id": 3,
"references": [
0,
1
],
"type": "trigger",
"data": {
"on": 0,
"references_in_body": [
0,
1
],
"name": "bang_triggers_after_insert",
"sql": "CREATE TRIGGER bang_triggers_after_insert AFTER INSERT ON bang \nWHEN new.additional_triggers IS NOT NULL\nBEGIN\n INSERT INTO bang_triggers(\"trigger\", \"group\", additional_trigger)\n SELECT \n new.\"trigger\",\n new.\"group\",\n json_each.value\n FROM json_each(new.additional_triggers);\nEND;"
}
},
{
"id": 4,
"references": [
0,
1
],
"type": "trigger",
"data": {
"on": 0,
"references_in_body": [
0,
1
],
"name": "bang_triggers_after_update",
"sql": "CREATE TRIGGER bang_triggers_after_update AFTER UPDATE ON bang BEGIN\n -- Delete old additional triggers\n DELETE FROM bang_triggers \n WHERE \"trigger\" = old.\"trigger\" AND \"group\" = old.\"group\";\n\n -- Insert new additional triggers if they exist\n INSERT INTO bang_triggers(\"trigger\", \"group\", additional_trigger)\n SELECT \n new.\"trigger\",\n new.\"group\",\n json_each.value\n FROM json_each(new.additional_triggers)\n WHERE new.additional_triggers IS NOT NULL;\nEND;"
}
},
{
"id": 5,
"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>(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": 6,
"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": "NOT NULL",
"default_dart": null,
"default_client_dart": null,
"dsl_features": []
},
{
"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>(BangGroup.values)",
"dart_type_name": "BangGroup"
}
},
{
"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": [
"PRIMARY KEY(\"trigger\", \"group\")",
"FOREIGN KEY(\"trigger\", \"group\")REFERENCES bang(\"trigger\", \"group\")ON DELETE CASCADE"
],
"explicit_pk": [
"trigger",
"group"
]
}
},
{
"id": 7,
"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",
"default_dart": null,
"default_client_dart": null,
"dsl_features": []
},
{
"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>(BangGroup.values)",
"dart_type_name": "BangGroup"
}
},
{
"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": [
"FOREIGN KEY(\"trigger\", \"group\")REFERENCES bang(\"trigger\", \"group\")ON DELETE CASCADE"
]
}
},
{
"id": 8,
"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": 9,
"references": [
1
],
"type": "table",
"data": {
"name": "bang_triggers_fts",
"was_declared_in_moor": true,
"columns": [
{
"name": "additional_trigger",
"getter_name": "additionalTrigger",
"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_triggers_fts\" USING fts5(additional_trigger, content=bang_triggers, prefix='2 3')",
"without_rowid": false,
"constraints": []
}
},
{
"id": 10,
"references": [
0,
6
],
"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\" AND b.\"group\" = bf.\"group\"",
"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>(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<BangFormat>?"
}
},
{
"name": "additional_triggers",
"getter_name": "additionalTriggers",
"moor_type": "string",
"nullable": true,
"customConstraints": null,
"default_dart": null,
"default_client_dart": null,
"dsl_features": [],
"type_converter": {
"dart_expr": "const TriggerListConverter()",
"dart_type_name": "Set<String>?"
}
},
{
"name": "searxng_api",
"getter_name": "searxngApi",
"moor_type": "bool",
"nullable": false,
"customConstraints": null,
"defaultConstraints": "CHECK (\"searxng_api\" IN (0, 1))",
"dialectAwareDefaultConstraints": {
"sqlite": "CHECK (\"searxng_api\" IN (0, 1))"
},
"default_dart": null,
"default_client_dart": null,
"dsl_features": []
},
{
"name": "snap_domain",
"getter_name": "snapDomain",
"moor_type": "string",
"nullable": true,
"customConstraints": null,
"default_dart": null,
"default_client_dart": null,
"dsl_features": []
},
{
"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": 11,
"references": [
0,
8
],
"type": "trigger",
"data": {
"on": 0,
"references_in_body": [
0,
8
],
"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": 12,
"references": [
0,
8
],
"type": "trigger",
"data": {
"on": 0,
"references_in_body": [
0,
8
],
"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": 13,
"references": [
0,
8
],
"type": "trigger",
"data": {
"on": 0,
"references_in_body": [
0,
8
],
"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;"
}
},
{
"id": 14,
"references": [
1,
9
],
"type": "trigger",
"data": {
"on": 1,
"references_in_body": [
1,
9
],
"name": "bang_triggers_after_insert_fts",
"sql": "CREATE TRIGGER bang_triggers_after_insert_fts AFTER INSERT ON bang_triggers BEGIN\n INSERT INTO \n bang_triggers_fts(rowid, additional_trigger) \n VALUES (new.rowid, new.additional_trigger);\nEND;"
}
},
{
"id": 15,
"references": [
1,
9
],
"type": "trigger",
"data": {
"on": 1,
"references_in_body": [
1,
9
],
"name": "bang_triggers_after_delete_fts",
"sql": "CREATE TRIGGER bang_triggers_after_delete_fts AFTER DELETE ON bang_triggers BEGIN\n INSERT INTO \n bang_triggers_fts(bang_triggers_fts, rowid, additional_trigger) \n VALUES('delete', old.rowid, old.additional_trigger);\nEND;"
}
},
{
"id": 16,
"references": [
1,
9
],
"type": "trigger",
"data": {
"on": 1,
"references_in_body": [
1,
9
],
"name": "bang_triggers_after_update_fts",
"sql": "CREATE TRIGGER bang_triggers_after_update_fts AFTER UPDATE ON bang_triggers BEGIN\n INSERT INTO \n bang_triggers_fts(bang_triggers_fts, rowid, additional_trigger) \n VALUES('delete', old.rowid, old.additional_trigger);\n INSERT INTO \n bang_triggers_fts(rowid, additional_trigger) \n VALUES (new.rowid, new.additional_trigger);\nEND;"
}
}
],
"fixed_sql": [
{
"name": "bang",
"sql": [
{
"dialect": "sqlite",
"sql": "CREATE TABLE IF NOT EXISTS \"bang\" (\"trigger\" TEXT NOT NULL, \"group\" INTEGER NOT NULL, \"website_name\" TEXT NOT NULL, \"domain\" TEXT NOT NULL, \"url_template\" TEXT NOT NULL, \"category\" TEXT, \"sub_category\" TEXT, \"format\" TEXT, \"additional_triggers\" TEXT, \"searxng_api\" INTEGER NOT NULL DEFAULT FALSE, \"snap_domain\" TEXT, PRIMARY KEY(\"trigger\", \"group\"));"
}
]
},
{
"name": "bang_triggers",
"sql": [
{
"dialect": "sqlite",
"sql": "CREATE TABLE IF NOT EXISTS \"bang_triggers\" (\"trigger\" TEXT NOT NULL, \"group\" INTEGER NOT NULL, \"additional_trigger\" TEXT NOT NULL, PRIMARY KEY(\"trigger\", \"group\", additional_trigger), FOREIGN KEY(\"trigger\", \"group\")REFERENCES bang(\"trigger\", \"group\")ON DELETE CASCADE);"
}
]
},
{
"name": "idx_bang_triggers_lookup",
"sql": [
{
"dialect": "sqlite",
"sql": "CREATE INDEX idx_bang_triggers_lookup ON bang_triggers (additional_trigger, \"group\")"
}
]
},
{
"name": "bang_triggers_after_insert",
"sql": [
{
"dialect": "sqlite",
"sql": "CREATE TRIGGER bang_triggers_after_insert AFTER INSERT ON bang WHEN new.additional_triggers IS NOT NULL BEGIN INSERT INTO bang_triggers (\"trigger\", \"group\", additional_trigger) SELECT new.\"trigger\", new.\"group\", json_each.value FROM json_each(new.additional_triggers);END"
}
]
},
{
"name": "bang_triggers_after_update",
"sql": [
{
"dialect": "sqlite",
"sql": "CREATE TRIGGER bang_triggers_after_update AFTER UPDATE ON bang BEGIN DELETE FROM bang_triggers WHERE \"trigger\" = old.\"trigger\" AND \"group\" = old.\"group\";INSERT INTO bang_triggers (\"trigger\", \"group\", additional_trigger) SELECT new.\"trigger\", new.\"group\", json_each.value FROM json_each(new.additional_triggers)WHERE new.additional_triggers IS NOT NULL;END"
}
]
},
{
"name": "bang_sync",
"sql": [
{
"dialect": "sqlite",
"sql": "CREATE TABLE IF NOT EXISTS \"bang_sync\" (\"group\" INTEGER PRIMARY KEY NOT NULL, \"last_sync\" INTEGER NOT NULL);"
}
]
},
{
"name": "bang_frequency",
"sql": [
{
"dialect": "sqlite",
"sql": "CREATE TABLE IF NOT EXISTS \"bang_frequency\" (\"trigger\" TEXT NOT NULL, \"group\" INTEGER NOT NULL, \"frequency\" INTEGER NOT NULL, \"last_used\" INTEGER NOT NULL, PRIMARY KEY(\"trigger\", \"group\"), FOREIGN KEY(\"trigger\", \"group\")REFERENCES bang(\"trigger\", \"group\")ON DELETE CASCADE);"
}
]
},
{
"name": "bang_history",
"sql": [
{
"dialect": "sqlite",
"sql": "CREATE TABLE IF NOT EXISTS \"bang_history\" (\"search_query\" TEXT UNIQUE NOT NULL, \"trigger\" TEXT NOT NULL, \"group\" INTEGER NOT NULL, \"search_date\" INTEGER NOT NULL, FOREIGN KEY(\"trigger\", \"group\")REFERENCES bang(\"trigger\", \"group\")ON DELETE CASCADE);"
}
]
},
{
"name": "bang_fts",
"sql": [
{
"dialect": "sqlite",
"sql": "CREATE VIRTUAL TABLE IF NOT EXISTS \"bang_fts\" USING fts5(trigger, website_name, content=bang, prefix='2 3');"
}
]
},
{
"name": "bang_triggers_fts",
"sql": [
{
"dialect": "sqlite",
"sql": "CREATE VIRTUAL TABLE IF NOT EXISTS \"bang_triggers_fts\" USING fts5(additional_trigger, content=bang_triggers, prefix='2 3');"
}
]
},
{
"name": "bang_data_view",
"sql": [
{
"dialect": "sqlite",
"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\" AND b.\"group\" = bf.\"group\""
}
]
},
{
"name": "bang_after_insert",
"sql": [
{
"dialect": "sqlite",
"sql": "CREATE TRIGGER bang_after_insert AFTER INSERT ON bang BEGIN INSERT INTO bang_fts (\"rowid\", \"trigger\", website_name) VALUES (new.\"rowid\", new.\"trigger\", new.website_name);END"
}
]
},
{
"name": "bang_after_delete",
"sql": [
{
"dialect": "sqlite",
"sql": "CREATE TRIGGER bang_after_delete AFTER DELETE ON bang BEGIN INSERT INTO bang_fts (bang_fts, \"rowid\", \"trigger\", website_name) VALUES ('delete', old.\"rowid\", old.\"trigger\", old.website_name);END"
}
]
},
{
"name": "bang_after_update",
"sql": [
{
"dialect": "sqlite",
"sql": "CREATE TRIGGER bang_after_update AFTER UPDATE ON bang BEGIN INSERT INTO bang_fts (bang_fts, \"rowid\", \"trigger\", website_name) VALUES ('delete', old.\"rowid\", old.\"trigger\", old.website_name);INSERT INTO bang_fts (\"rowid\", \"trigger\", website_name) VALUES (new.\"rowid\", new.\"trigger\", new.website_name);END"
}
]
},
{
"name": "bang_triggers_after_insert_fts",
"sql": [
{
"dialect": "sqlite",
"sql": "CREATE TRIGGER bang_triggers_after_insert_fts AFTER INSERT ON bang_triggers BEGIN INSERT INTO bang_triggers_fts (\"rowid\", additional_trigger) VALUES (new.\"rowid\", new.additional_trigger);END"
}
]
},
{
"name": "bang_triggers_after_delete_fts",
"sql": [
{
"dialect": "sqlite",
"sql": "CREATE TRIGGER bang_triggers_after_delete_fts AFTER DELETE ON bang_triggers BEGIN INSERT INTO bang_triggers_fts (bang_triggers_fts, \"rowid\", additional_trigger) VALUES ('delete', old.\"rowid\", old.additional_trigger);END"
}
]
},
{
"name": "bang_triggers_after_update_fts",
"sql": [
{
"dialect": "sqlite",
"sql": "CREATE TRIGGER bang_triggers_after_update_fts AFTER UPDATE ON bang_triggers BEGIN INSERT INTO bang_triggers_fts (bang_triggers_fts, \"rowid\", additional_trigger) VALUES ('delete', old.\"rowid\", old.additional_trigger);INSERT INTO bang_triggers_fts (\"rowid\", additional_trigger) VALUES (new.\"rowid\", new.additional_trigger);END"
}
]
}
]
}