mirror of
https://github.com/simplex-chat/simplexmq.git
synced 2026-05-30 02:54:06 +00:00
614fa2b163
* smp server: reduce idle queue interval and queue expiration interval * only expire recent queues (not very old) * fix * version
64 lines
1.8 KiB
Haskell
64 lines
1.8 KiB
Haskell
{-# LANGUAGE NamedFieldPuns #-}
|
|
{-# LANGUAGE QuasiQuotes #-}
|
|
|
|
module Simplex.Messaging.Server.QueueStore.Postgres.Migrations where
|
|
|
|
import Data.List (sortOn)
|
|
import Data.Text (Text)
|
|
import qualified Data.Text as T
|
|
import Simplex.Messaging.Agent.Store.Shared
|
|
import Text.RawString.QQ (r)
|
|
|
|
serverSchemaMigrations :: [(String, Text, Maybe Text)]
|
|
serverSchemaMigrations =
|
|
[ ("20250207_initial", m20250207_initial, Nothing),
|
|
("20250319_updated_index", m20250319_updated_index, Just down_m20250319_updated_index)
|
|
]
|
|
|
|
-- | The list of migrations in ascending order by date
|
|
serverMigrations :: [Migration]
|
|
serverMigrations = sortOn name $ map migration serverSchemaMigrations
|
|
where
|
|
migration (name, up, down) = Migration {name, up, down = down}
|
|
|
|
m20250207_initial :: Text
|
|
m20250207_initial =
|
|
T.pack
|
|
[r|
|
|
CREATE TABLE msg_queues(
|
|
recipient_id BYTEA NOT NULL,
|
|
recipient_key BYTEA NOT NULL,
|
|
rcv_dh_secret BYTEA NOT NULL,
|
|
sender_id BYTEA NOT NULL,
|
|
sender_key BYTEA,
|
|
snd_secure BOOLEAN NOT NULL,
|
|
notifier_id BYTEA,
|
|
notifier_key BYTEA,
|
|
rcv_ntf_dh_secret BYTEA,
|
|
status TEXT NOT NULL,
|
|
updated_at BIGINT,
|
|
deleted_at BIGINT,
|
|
PRIMARY KEY (recipient_id)
|
|
);
|
|
|
|
CREATE UNIQUE INDEX idx_msg_queues_sender_id ON msg_queues(sender_id);
|
|
CREATE UNIQUE INDEX idx_msg_queues_notifier_id ON msg_queues(notifier_id);
|
|
CREATE INDEX idx_msg_queues_deleted_at ON msg_queues (deleted_at);
|
|
|]
|
|
|
|
m20250319_updated_index :: Text
|
|
m20250319_updated_index =
|
|
T.pack
|
|
[r|
|
|
DROP INDEX idx_msg_queues_deleted_at;
|
|
CREATE INDEX idx_msg_queues_updated_at ON msg_queues (deleted_at, updated_at);
|
|
|]
|
|
|
|
down_m20250319_updated_index :: Text
|
|
down_m20250319_updated_index =
|
|
T.pack
|
|
[r|
|
|
DROP INDEX idx_msg_queues_updated_at;
|
|
CREATE INDEX idx_msg_queues_deleted_at ON msg_queues (deleted_at);
|
|
|]
|