Stickers in storage service
This commit is contained in:
parent
d8a7e99c81
commit
b47a906211
18 changed files with 1216 additions and 80 deletions
62
ts/sql/migrations/65-add-storage-id-to-stickers.ts
Normal file
62
ts/sql/migrations/65-add-storage-id-to-stickers.ts
Normal file
|
@ -0,0 +1,62 @@
|
|||
// Copyright 2021-2022 Signal Messenger, LLC
|
||||
// SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
import type { Database } from 'better-sqlite3';
|
||||
|
||||
import type { LoggerType } from '../../types/Logging';
|
||||
|
||||
export default function updateToSchemaVersion65(
|
||||
currentVersion: number,
|
||||
db: Database,
|
||||
logger: LoggerType
|
||||
): void {
|
||||
if (currentVersion >= 65) {
|
||||
return;
|
||||
}
|
||||
|
||||
db.transaction(() => {
|
||||
db.exec(
|
||||
`
|
||||
ALTER TABLE sticker_packs ADD COLUMN position INTEGER DEFAULT 0 NOT NULL;
|
||||
ALTER TABLE sticker_packs ADD COLUMN storageID STRING;
|
||||
ALTER TABLE sticker_packs ADD COLUMN storageVersion INTEGER;
|
||||
ALTER TABLE sticker_packs ADD COLUMN storageUnknownFields BLOB;
|
||||
ALTER TABLE sticker_packs
|
||||
ADD COLUMN storageNeedsSync
|
||||
INTEGER DEFAULT 0 NOT NULL;
|
||||
|
||||
CREATE TABLE uninstalled_sticker_packs (
|
||||
id STRING NOT NULL PRIMARY KEY,
|
||||
uninstalledAt NUMBER NOT NULL,
|
||||
storageID STRING,
|
||||
storageVersion NUMBER,
|
||||
storageUnknownFields BLOB,
|
||||
storageNeedsSync INTEGER NOT NULL
|
||||
);
|
||||
|
||||
-- Set initial position
|
||||
|
||||
UPDATE sticker_packs
|
||||
SET
|
||||
position = (row_number - 1),
|
||||
storageNeedsSync = 1
|
||||
FROM (
|
||||
SELECT id, row_number() OVER (ORDER BY lastUsed DESC) as row_number
|
||||
FROM sticker_packs
|
||||
) as ordered_pairs
|
||||
WHERE sticker_packs.id IS ordered_pairs.id;
|
||||
|
||||
-- See: getAllStickerPacks
|
||||
|
||||
CREATE INDEX sticker_packs_by_position_and_id ON sticker_packs (
|
||||
position ASC,
|
||||
id ASC
|
||||
);
|
||||
`
|
||||
);
|
||||
|
||||
db.pragma('user_version = 65');
|
||||
})();
|
||||
|
||||
logger.info('updateToSchemaVersion65: success!');
|
||||
}
|
|
@ -40,6 +40,7 @@ import updateToSchemaVersion61 from './61-distribution-list-storage';
|
|||
import updateToSchemaVersion62 from './62-add-urgent-to-send-log';
|
||||
import updateToSchemaVersion63 from './63-add-urgent-to-unprocessed';
|
||||
import updateToSchemaVersion64 from './64-uuid-column-for-pre-keys';
|
||||
import updateToSchemaVersion65 from './65-add-storage-id-to-stickers';
|
||||
|
||||
function updateToSchemaVersion1(
|
||||
currentVersion: number,
|
||||
|
@ -1943,6 +1944,7 @@ export const SCHEMA_VERSIONS = [
|
|||
updateToSchemaVersion62,
|
||||
updateToSchemaVersion63,
|
||||
updateToSchemaVersion64,
|
||||
updateToSchemaVersion65,
|
||||
];
|
||||
|
||||
export function updateSchema(db: Database, logger: LoggerType): void {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue