Просмотр исходного кода

backfill state: add table for tracking state

Sumner Evans 3 лет назад
Родитель
Сommit
89663c2745
2 измененных файлов с 26 добавлено и 1 удалено
  1. 25 0
      database/upgrades/2022-05-16-room-backfill-state.go
  2. 1 1
      database/upgrades/upgrades.go

+ 25 - 0
database/upgrades/2022-05-16-room-backfill-state.go

@@ -0,0 +1,25 @@
+package upgrades
+
+import (
+	"database/sql"
+)
+
+func init() {
+	upgrades[46] = upgrade{"Create the backfill state table", func(tx *sql.Tx, ctx context) error {
+		_, err := tx.Exec(`
+			CREATE TABLE backfill_state (
+				user_mxid           TEXT,
+				portal_jid          TEXT,
+				portal_receiver     TEXT,
+				processing_batch    BOOLEAN,
+				backfill_complete   BOOLEAN,
+				first_expected_ts   TIMESTAMP,
+
+				PRIMARY KEY (user_mxid, portal_jid, portal_receiver),
+				FOREIGN KEY (user_mxid) REFERENCES "user"(mxid) ON DELETE CASCADE ON UPDATE CASCADE,
+				FOREIGN KEY (portal_jid, portal_receiver) REFERENCES portal(jid, receiver) ON DELETE CASCADE
+			)
+		`)
+		return err
+	}}
+}

+ 1 - 1
database/upgrades/upgrades.go

@@ -40,7 +40,7 @@ type upgrade struct {
 	fn      upgradeFunc
 }
 
-const NumberOfUpgrades = 46
+const NumberOfUpgrades = 47
 
 var upgrades [NumberOfUpgrades]upgrade