فهرست منبع

db/portal: add infinite backfill fields

Signed-off-by: Sumner Evans <sumner@beeper.com>
Sumner Evans 2 سال پیش
والد
کامیت
cc611b3536

+ 1 - 0
mautrix_instagram/db/upgrade/__init__.py

@@ -27,4 +27,5 @@ from . import (
     v07_reaction_timestamps,
     v08_sync_sequence_id,
     v09_backfill_queue,
+    v10_portal_infinite_backfill,
 )

+ 15 - 11
mautrix_instagram/db/upgrade/v00_latest_revision.py

@@ -18,20 +18,24 @@ from mautrix.util.async_db import Connection, Scheme
 from . import upgrade_table
 
 
-@upgrade_table.register(description="Latest revision", upgrades_to=9)
+@upgrade_table.register(description="Latest revision", upgrades_to=10)
 async def upgrade_latest(conn: Connection, scheme: Scheme) -> None:
     await conn.execute(
         """CREATE TABLE portal (
-            thread_id     TEXT,
-            receiver      BIGINT,
-            other_user_pk BIGINT,
-            mxid          TEXT,
-            name          TEXT,
-            avatar_url    TEXT,
-            name_set      BOOLEAN NOT NULL DEFAULT false,
-            avatar_set    BOOLEAN NOT NULL DEFAULT false,
-            encrypted     BOOLEAN NOT NULL DEFAULT false,
-            relay_user_id TEXT,
+            thread_id                           TEXT,
+            receiver                            BIGINT,
+            other_user_pk                       BIGINT,
+            mxid                                TEXT,
+            name                                TEXT,
+            avatar_url                          TEXT,
+            name_set                            BOOLEAN NOT NULL DEFAULT false,
+            avatar_set                          BOOLEAN NOT NULL DEFAULT false,
+            encrypted                           BOOLEAN NOT NULL DEFAULT false,
+            relay_user_id                       TEXT,
+            first_event_id                      TEXT,
+            next_batch_id                       TEXT,
+            historical_base_insertion_event_id  TEXT,
+            cursor                              TEXT,
             PRIMARY KEY (thread_id, receiver)
         )"""
     )

+ 26 - 0
mautrix_instagram/db/upgrade/v10_portal_infinite_backfill.py

@@ -0,0 +1,26 @@
+# mautrix-instagram - A Matrix-Instagram puppeting bridge.
+# Copyright (C) 2022 Tulir Asokan, Sumner Evans
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program.  If not, see <https://www.gnu.org/licenses/>.
+from mautrix.util.async_db import Connection
+
+from . import upgrade_table
+
+
+@upgrade_table.register(description="Add columns to store infinite backfill pointers for portals")
+async def upgrade_v10(conn: Connection) -> None:
+    await conn.execute("ALTER TABLE portal ADD COLUMN first_event_id TEXT")
+    await conn.execute("ALTER TABLE portal ADD COLUMN next_batch_id TEXT")
+    await conn.execute("ALTER TABLE portal ADD COLUMN historical_base_insertion_event_id TEXT")
+    await conn.execute("ALTER TABLE portal ADD COLUMN cursor TEXT")