diff --git a/packages/backend/src/services/database/sqlite_setup/0001_create-tables.sql b/packages/backend/src/services/database/sqlite_setup/0001_create-tables.sql index cf06a9848..bb447c1b5 100644 --- a/packages/backend/src/services/database/sqlite_setup/0001_create-tables.sql +++ b/packages/backend/src/services/database/sqlite_setup/0001_create-tables.sql @@ -120,7 +120,10 @@ CREATE TABLE `kv` ( `value` text, -- 0016 - `migrated` tinyint(1) DEFAULT '0' + `migrated` tinyint(1) DEFAULT '0', + + -- 0019 + UNIQUE (user_id, app, kkey_hash) ); CREATE TABLE `subdomains` ( diff --git a/packages/backend/src/services/drivers/implementations/DBKVStore.js b/packages/backend/src/services/drivers/implementations/DBKVStore.js index a679b503b..8f6badfd6 100644 --- a/packages/backend/src/services/drivers/implementations/DBKVStore.js +++ b/packages/backend/src/services/drivers/implementations/DBKVStore.js @@ -90,8 +90,7 @@ class DBKVStore extends BaseImplementation { VALUES (?, ?, ?, ?, ?) ` + db.case({ mysql: 'ON DUPLICATE KEY UPDATE value = ?', - sqlite: ' ', - // sqlite: 'ON CONFLICT(user_id, app, kkey_hash) DO UPDATE SET value = ?', + sqlite: 'ON CONFLICT(user_id, app, kkey_hash) DO UPDATE SET value = excluded.value', }), [ user.id, app?.uid ?? 'global', key_hash, key, value,