Skip to content

Commit 31f0044

Browse files
authored
fix: πŸ› Fix schema for sqlite inserts (#3006)
* fix: πŸ› Fix schema for sqlite inserts * fix: πŸ› Also fix delete trigger not working with REPLACE INTO
1 parent d0924f7 commit 31f0044

File tree

1 file changed

+24
-22
lines changed

1 file changed

+24
-22
lines changed

β€Žaddons/api/addon/workers/utils/schema.jsβ€Ž

Lines changed: 24 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,9 @@ CREATE VIRTUAL TABLE IF NOT EXISTS target_fts USING fts5(
4444
-- which replaces the row and doesn't execute an UPDATE trigger.
4545
CREATE TRIGGER IF NOT EXISTS target_ai AFTER INSERT ON target BEGIN
4646
INSERT INTO target_fts(
47-
id, type, name, description, address, scope_id, created_time
47+
rowid, id, type, name, description, address, scope_id, created_time
4848
) VALUES (
49-
new.id, new.type, new.name, new.description, new.address, new.scope_id, new.created_time
49+
new.rowid, new.id, new.type, new.name, new.description, new.address, new.scope_id, new.created_time
5050
);
5151
END;
5252
@@ -83,9 +83,9 @@ CREATE VIRTUAL TABLE IF NOT EXISTS alias_fts USING fts5(
8383
8484
CREATE TRIGGER IF NOT EXISTS alias_ai AFTER INSERT ON alias BEGIN
8585
INSERT INTO alias_fts(
86-
id, type, name, description, destination_id, value, scope_id, created_time
86+
rowid, id, type, name, description, destination_id, value, scope_id, created_time
8787
) VALUES (
88-
new.id, new.type, new.name, new.description, new.destination_id, new.value, new.scope_id, new.created_time
88+
new.rowid, new.id, new.type, new.name, new.description, new.destination_id, new.value, new.scope_id, new.created_time
8989
);
9090
END;
9191
@@ -116,9 +116,9 @@ CREATE VIRTUAL TABLE IF NOT EXISTS group_fts USING fts5(
116116
117117
CREATE TRIGGER IF NOT EXISTS group_ai AFTER INSERT ON "group" BEGIN
118118
INSERT INTO group_fts(
119-
id, name, description, scope_id, created_time
119+
rowid, id, name, description, scope_id, created_time
120120
) VALUES (
121-
new.id, new.name, new.description, new.scope_id, new.created_time
121+
new.rowid, new.id, new.name, new.description, new.scope_id, new.created_time
122122
);
123123
END;
124124
@@ -149,9 +149,9 @@ CREATE VIRTUAL TABLE IF NOT EXISTS role_fts USING fts5(
149149
150150
CREATE TRIGGER IF NOT EXISTS role_ai AFTER INSERT ON role BEGIN
151151
INSERT INTO role_fts(
152-
id, name, description, scope_id, created_time
152+
rowid, id, name, description, scope_id, created_time
153153
) VALUES (
154-
new.id, new.name, new.description, new.scope_id, new.created_time
154+
new.rowid, new.id, new.name, new.description, new.scope_id, new.created_time
155155
);
156156
END;
157157
@@ -182,9 +182,9 @@ CREATE VIRTUAL TABLE IF NOT EXISTS user_fts USING fts5(
182182
183183
CREATE TRIGGER IF NOT EXISTS user_ai AFTER INSERT ON user BEGIN
184184
INSERT INTO user_fts(
185-
id, name, description, scope_id, created_time
185+
rowid, id, name, description, scope_id, created_time
186186
) VALUES (
187-
new.id, new.name, new.description, new.scope_id, new.created_time
187+
new.rowid, new.id, new.name, new.description, new.scope_id, new.created_time
188188
);
189189
END;
190190
@@ -217,9 +217,9 @@ CREATE VIRTUAL TABLE IF NOT EXISTS credential_store_fts USING fts5(
217217
218218
CREATE TRIGGER IF NOT EXISTS credential_store_ai AFTER INSERT ON credential_store BEGIN
219219
INSERT INTO credential_store_fts(
220-
id, type, name, description, scope_id, created_time
220+
rowid, id, type, name, description, scope_id, created_time
221221
) VALUES (
222-
new.id, new.type, new.name, new.description, new.scope_id, new.created_time
222+
new.rowid, new.id, new.type, new.name, new.description, new.scope_id, new.created_time
223223
);
224224
END;
225225
@@ -252,9 +252,9 @@ CREATE VIRTUAL TABLE IF NOT EXISTS scope_fts USING fts5(
252252
253253
CREATE TRIGGER IF NOT EXISTS scope_ai AFTER INSERT ON scope BEGIN
254254
INSERT INTO scope_fts(
255-
id, type, name, description, scope_id, created_time
255+
rowid, id, type, name, description, scope_id, created_time
256256
) VALUES (
257-
new.id, new.type, new.name, new.description, new.scope_id, new.created_time
257+
new.rowid, new.id, new.type, new.name, new.description, new.scope_id, new.created_time
258258
);
259259
END;
260260
@@ -289,9 +289,9 @@ CREATE VIRTUAL TABLE IF NOT EXISTS auth_method_fts USING fts5(
289289
290290
CREATE TRIGGER IF NOT EXISTS auth_method_ai AFTER INSERT ON auth_method BEGIN
291291
INSERT INTO auth_method_fts(
292-
id, type, name, description, is_primary, scope_id, created_time
292+
rowid, id, type, name, description, is_primary, scope_id, created_time
293293
) VALUES (
294-
new.id, new.type, new.name, new.description, new.is_primary, new.scope_id, new.created_time
294+
new.rowid, new.id, new.type, new.name, new.description, new.is_primary, new.scope_id, new.created_time
295295
);
296296
END;
297297
@@ -326,9 +326,9 @@ CREATE VIRTUAL TABLE IF NOT EXISTS host_catalog_fts USING fts5(
326326
327327
CREATE TRIGGER IF NOT EXISTS host_catalog_ai AFTER INSERT ON host_catalog BEGIN
328328
INSERT INTO host_catalog_fts(
329-
id, type, name, description, plugin_name, scope_id, created_time
329+
rowid, id, type, name, description, plugin_name, scope_id, created_time
330330
) VALUES (
331-
new.id, new.type, new.name, new.description, new.plugin_name, new.scope_id, new.created_time
331+
new.rowid, new.id, new.type, new.name, new.description, new.plugin_name, new.scope_id, new.created_time
332332
);
333333
END;
334334
@@ -377,9 +377,9 @@ CREATE VIRTUAL TABLE IF NOT EXISTS session_recording_fts USING fts5(
377377
378378
CREATE TRIGGER IF NOT EXISTS session_recording_ai AFTER INSERT ON session_recording BEGIN
379379
INSERT INTO session_recording_fts(
380-
id, type, state, start_time, end_time, duration, scope_id, user_id, user_name, target_id, target_name, target_scope_id, target_scope_name, created_time
380+
rowid, id, type, state, start_time, end_time, duration, scope_id, user_id, user_name, target_id, target_name, target_scope_id, target_scope_name, created_time
381381
) VALUES (
382-
new.id, new.type, new.state, new.start_time, new.end_time, new.duration, new.scope_id, new.user_id, new.user_name, new.target_id, new.target_name, new.target_scope_id, new.target_scope_name, new.created_time
382+
new.rowid, new.id, new.type, new.state, new.start_time, new.end_time, new.duration, new.scope_id, new.user_id, new.user_name, new.target_id, new.target_name, new.target_scope_id, new.target_scope_name, new.created_time
383383
);
384384
END;
385385
@@ -416,9 +416,9 @@ CREATE VIRTUAL TABLE IF NOT EXISTS session_fts USING fts5(
416416
417417
CREATE TRIGGER IF NOT EXISTS session_ai AFTER INSERT ON session BEGIN
418418
INSERT INTO session_fts(
419-
id, type, status, endpoint, target_id, user_id, scope_id, created_time
419+
rowid, id, type, status, endpoint, target_id, user_id, scope_id, created_time
420420
) VALUES (
421-
new.id, new.type, new.status, new.endpoint, new.target_id, new.user_id, new.scope_id, new.created_time
421+
new.rowid, new.id, new.type, new.status, new.endpoint, new.target_id, new.user_id, new.scope_id, new.created_time
422422
);
423423
END;
424424
@@ -430,6 +430,8 @@ END;`;
430430
export const CREATE_TABLES = (version) => `
431431
BEGIN;
432432
433+
-- This ensures multiple triggers can activate in the scenario of using REPLACE INTO
434+
PRAGMA recursive_triggers = true;
433435
PRAGMA user_version = ${version};
434436
435437
CREATE TABLE IF NOT EXISTS token (

0 commit comments

Comments
Β (0)