瀏覽代碼

backfill state: add table for tracking state

Sumner Evans 3 年之前
父節點
當前提交
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