Simplify database migrations
This commit is contained in:
parent
46d5b06bfc
commit
e6809c95db
106 changed files with 4661 additions and 6814 deletions
|
@ -1,53 +1,36 @@
|
|||
// Copyright 2025 Signal Messenger, LLC
|
||||
// SPDX-License-Identifier: AGPL-3.0-only
|
||||
import type { Database } from '@signalapp/sqlcipher';
|
||||
import type { LoggerType } from '../../types/Logging';
|
||||
import { sql } from '../util';
|
||||
|
||||
export const version = 1270;
|
||||
export default function updateToSchemaVersion1270(db: Database): void {
|
||||
const [query] = sql`
|
||||
ALTER TABLE messages
|
||||
ADD COLUMN timestamp INTEGER;
|
||||
ALTER TABLE messages
|
||||
ADD COLUMN received_at_ms INTEGER;
|
||||
ALTER TABLE messages
|
||||
ADD COLUMN unidentifiedDeliveryReceived INTEGER;
|
||||
ALTER TABLE messages
|
||||
ADD COLUMN serverTimestamp INTEGER;
|
||||
|
||||
export function updateToSchemaVersion1270(
|
||||
currentVersion: number,
|
||||
db: Database,
|
||||
logger: LoggerType
|
||||
): void {
|
||||
if (currentVersion >= 1270) {
|
||||
return;
|
||||
}
|
||||
ALTER TABLE messages
|
||||
RENAME COLUMN source TO legacySource;
|
||||
ALTER TABLE messages
|
||||
ADD COLUMN source TEXT;
|
||||
|
||||
db.transaction(() => {
|
||||
const [query] = sql`
|
||||
ALTER TABLE messages
|
||||
ADD COLUMN timestamp INTEGER;
|
||||
ALTER TABLE messages
|
||||
ADD COLUMN received_at_ms INTEGER;
|
||||
ALTER TABLE messages
|
||||
ADD COLUMN unidentifiedDeliveryReceived INTEGER;
|
||||
ALTER TABLE messages
|
||||
ADD COLUMN serverTimestamp INTEGER;
|
||||
UPDATE messages SET
|
||||
timestamp = json_extract(json, '$.timestamp'),
|
||||
received_at_ms = json_extract(json, '$.received_at_ms'),
|
||||
unidentifiedDeliveryReceived =
|
||||
json_extract(json, '$.unidentifiedDeliveryReceived'),
|
||||
serverTimestamp =
|
||||
json_extract(json, '$.serverTimestamp'),
|
||||
source = IFNULL(json_extract(json, '$.source'), '+' || legacySource);
|
||||
|
||||
ALTER TABLE messages
|
||||
RENAME COLUMN source TO legacySource;
|
||||
ALTER TABLE messages
|
||||
ADD COLUMN source TEXT;
|
||||
ALTER TABLE messages
|
||||
DROP COLUMN legacySource;
|
||||
`;
|
||||
|
||||
UPDATE messages SET
|
||||
timestamp = json_extract(json, '$.timestamp'),
|
||||
received_at_ms = json_extract(json, '$.received_at_ms'),
|
||||
unidentifiedDeliveryReceived =
|
||||
json_extract(json, '$.unidentifiedDeliveryReceived'),
|
||||
serverTimestamp =
|
||||
json_extract(json, '$.serverTimestamp'),
|
||||
source = IFNULL(json_extract(json, '$.source'), '+' || legacySource);
|
||||
|
||||
ALTER TABLE messages
|
||||
DROP COLUMN legacySource;
|
||||
`;
|
||||
|
||||
db.exec(query);
|
||||
|
||||
db.pragma('user_version = 1270');
|
||||
})();
|
||||
|
||||
logger.info('updateToSchemaVersion1270: success!');
|
||||
db.exec(query);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue