mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-04-26 09:16:22 +02:00
fix: fixed notifications table and Electric SQL replication setup. Removed redirects for upload button
This commit is contained in:
parent
5bd6bd3d67
commit
fede7413fb
6 changed files with 54 additions and 67 deletions
|
|
@ -1,10 +1,11 @@
|
|||
"""Add notifications table
|
||||
"""Add notifications table and Electric SQL replication
|
||||
|
||||
Revision ID: 62
|
||||
Revises: 61
|
||||
|
||||
Note: Electric SQL replication setup (REPLICA IDENTITY FULL and publication)
|
||||
is handled in app/db.py setup_electric_replication() which runs on app startup.
|
||||
Creates notifications table and sets up Electric SQL replication
|
||||
(REPLICA IDENTITY FULL and publication) for notifications,
|
||||
search_source_connectors, and documents tables.
|
||||
"""
|
||||
|
||||
from collections.abc import Sequence
|
||||
|
|
@ -19,7 +20,7 @@ depends_on: str | Sequence[str] | None = None
|
|||
|
||||
|
||||
def upgrade() -> None:
|
||||
"""Upgrade schema - add notifications table."""
|
||||
"""Upgrade schema - add notifications table and Electric SQL replication."""
|
||||
# Create notifications table
|
||||
op.execute(
|
||||
"""
|
||||
|
|
@ -44,6 +45,51 @@ def upgrade() -> None:
|
|||
op.create_index("ix_notifications_created_at", "notifications", ["created_at"])
|
||||
op.create_index("ix_notifications_user_read", "notifications", ["user_id", "read"])
|
||||
|
||||
# Set up Electric SQL replication for real-time sync tables
|
||||
# Set REPLICA IDENTITY FULL (required by Electric SQL for replication)
|
||||
# This logs full row data for UPDATE/DELETE operations in the WAL
|
||||
op.execute("ALTER TABLE notifications REPLICA IDENTITY FULL;")
|
||||
op.execute("ALTER TABLE search_source_connectors REPLICA IDENTITY FULL;")
|
||||
op.execute("ALTER TABLE documents REPLICA IDENTITY FULL;")
|
||||
|
||||
# Add tables to Electric SQL publication for replication if publication exists
|
||||
op.execute(
|
||||
"""
|
||||
DO $$
|
||||
BEGIN
|
||||
IF EXISTS (SELECT 1 FROM pg_publication WHERE pubname = 'electric_publication_default') THEN
|
||||
-- Add notifications if not already added
|
||||
IF NOT EXISTS (
|
||||
SELECT 1 FROM pg_publication_tables
|
||||
WHERE pubname = 'electric_publication_default'
|
||||
AND tablename = 'notifications'
|
||||
) THEN
|
||||
ALTER PUBLICATION electric_publication_default ADD TABLE notifications;
|
||||
END IF;
|
||||
|
||||
-- Add search_source_connectors if not already added
|
||||
IF NOT EXISTS (
|
||||
SELECT 1 FROM pg_publication_tables
|
||||
WHERE pubname = 'electric_publication_default'
|
||||
AND tablename = 'search_source_connectors'
|
||||
) THEN
|
||||
ALTER PUBLICATION electric_publication_default ADD TABLE search_source_connectors;
|
||||
END IF;
|
||||
|
||||
-- Add documents if not already added
|
||||
IF NOT EXISTS (
|
||||
SELECT 1 FROM pg_publication_tables
|
||||
WHERE pubname = 'electric_publication_default'
|
||||
AND tablename = 'documents'
|
||||
) THEN
|
||||
ALTER PUBLICATION electric_publication_default ADD TABLE documents;
|
||||
END IF;
|
||||
END IF;
|
||||
END
|
||||
$$;
|
||||
"""
|
||||
)
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
"""Downgrade schema - remove notifications table."""
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue