From 531a557e9d16c5577d2001bea94ccb7be9177e14 Mon Sep 17 00:00:00 2001 From: Till Faelligen Date: Mon, 16 May 2022 15:49:58 +0200 Subject: [PATCH] Set expires_at to tomorrow --- .../deltas/2022042812473400_addexpiresat.go | 8 +++- .../deltas/2022042812473400_addexpiresat.go | 45 ++++--------------- 2 files changed, 15 insertions(+), 38 deletions(-) diff --git a/federationapi/storage/postgres/deltas/2022042812473400_addexpiresat.go b/federationapi/storage/postgres/deltas/2022042812473400_addexpiresat.go index 99b0030ef..4eb9c71ed 100644 --- a/federationapi/storage/postgres/deltas/2022042812473400_addexpiresat.go +++ b/federationapi/storage/postgres/deltas/2022042812473400_addexpiresat.go @@ -17,8 +17,10 @@ package deltas import ( "database/sql" "fmt" + "time" "github.com/matrix-org/dendrite/internal/sqlutil" + "github.com/matrix-org/gomatrixserverlib" ) func LoadAddExpiresAt(m *sqlutil.Migrations) { @@ -26,10 +28,14 @@ func LoadAddExpiresAt(m *sqlutil.Migrations) { } func upAddexpiresat(tx *sql.Tx) error { - _, err := tx.Exec("ALTER TABLE federationsender_queue_edus ADD COLUMN IF NOT EXISTS expires_at BIGINT DEFAULT NULL;") + _, err := tx.Exec("ALTER TABLE federationsender_queue_edus ADD COLUMN IF NOT EXISTS expires_at BIGINT NOT NULL DEFAULT 0;") if err != nil { return fmt.Errorf("failed to execute upgrade: %w", err) } + _, err = tx.Exec("UPDATE federationsender_queue_edus SET expires_at = $1", gomatrixserverlib.AsTimestamp(time.Now().Add(time.Hour*24))) + if err != nil { + return fmt.Errorf("failed to update queue_edus: %w", err) + } return nil } diff --git a/federationapi/storage/sqlite3/deltas/2022042812473400_addexpiresat.go b/federationapi/storage/sqlite3/deltas/2022042812473400_addexpiresat.go index 37c996206..0a71c4464 100644 --- a/federationapi/storage/sqlite3/deltas/2022042812473400_addexpiresat.go +++ b/federationapi/storage/sqlite3/deltas/2022042812473400_addexpiresat.go @@ -17,8 +17,10 @@ package deltas import ( "database/sql" "fmt" + "time" "github.com/matrix-org/dendrite/internal/sqlutil" + "github.com/matrix-org/gomatrixserverlib" ) func LoadAddExpiresAt(m *sqlutil.Migrations) { @@ -36,7 +38,7 @@ CREATE TABLE IF NOT EXISTS federationsender_queue_edus ( edu_type TEXT NOT NULL, server_name TEXT NOT NULL, json_nid BIGINT NOT NULL, - expires_at BIGINT + expires_at BIGINT NOT NULL DEFAULT 0 ); CREATE UNIQUE INDEX IF NOT EXISTS federationsender_queue_edus_json_nid_idx @@ -49,53 +51,22 @@ CREATE UNIQUE INDEX IF NOT EXISTS federationsender_queue_edus_json_nid_idx INSERT INTO federationsender_queue_edus ( edu_type, server_name, json_nid, expires_at - ) SELECT edu_type, server_name, json_nid, null FROM federationsender_queue_edus_old; + ) SELECT edu_type, server_name, json_nid, 0 FROM federationsender_queue_edus_old; `) if err != nil { - return fmt.Errorf("failed to move data to new table: %w", err) + return fmt.Errorf("failed to update queue_edus: %w", err) } - - _, err = tx.Exec("DROP TABLE federationsender_queue_edus_old;") + _, err = tx.Exec("UPDATE federationsender_queue_edus SET expires_at = $1", gomatrixserverlib.AsTimestamp(time.Now().Add(time.Hour*24))) if err != nil { - return fmt.Errorf("failed to create new table: %w", err) + return fmt.Errorf("failed to update queue_edus: %w", err) } - return nil } func downAddexpiresat(tx *sql.Tx) error { - _, err := tx.Exec("ALTER TABLE federationsender_queue_edus RENAME TO federationsender_queue_edus_old;") + _, err := tx.Exec("ALTER TABLE federationsender_queue_edus DROP COLUMN expires_at;") if err != nil { return fmt.Errorf("failed to rename table: %w", err) } - - _, err = tx.Exec(` -CREATE TABLE IF NOT EXISTS federationsender_queue_edus ( - edu_type TEXT NOT NULL, - server_name TEXT NOT NULL, - json_nid BIGINT NOT NULL -); - -CREATE UNIQUE INDEX IF NOT EXISTS federationsender_queue_edus_json_nid_idx - ON federationsender_queue_edus (json_nid, server_name); -`) - if err != nil { - return fmt.Errorf("failed to create new table: %w", err) - } - _, err = tx.Exec(` -INSERT - INTO federationsender_queue_edus ( - edu_type, server_name, json_nid - ) SELECT edu_type, server_name, json_nid FROM federationsender_queue_edus_old; -`) - if err != nil { - return fmt.Errorf("failed to move data to new table: %w", err) - } - - _, err = tx.Exec("DROP TABLE federationsender_queue_edus_old;") - if err != nil { - return fmt.Errorf("failed to create new table: %w", err) - } - return nil }