-
Notifications
You must be signed in to change notification settings - Fork 0
Database
Provider-neutral Postgres migrations for Gateway/AppView data, ingestion recovery, historical Tap parity evidence, and Operations state. Hosted Development and Production use isolated Railway Postgres services.
Runbook: database/README.md Test plan: docs/test-plans/database.md
DATABASE_URL='postgresql://…' bash scripts/apply-database-migrations.shMigrations live in database/migrations/. Validate them only against an isolated disposable database.
Gateway, AppView, and Charybdis still contain SQLite backends, but their current process entry points share the Operations environment guard and reject APP_ENV=local. Until that mismatch is fixed, runnable local service integration uses APP_ENV=dev plus an isolated Postgres DATABASE_URL. Do not use the hosted Development or Production database for local testing.
| Table | Purpose |
|---|---|
sidebar_projection_cache, unread_counts_cache, first_page_cache
|
Active for Postgres cache mode; rollback target while an environment selects Redis |
pds_repo_record_cache |
Active for Gateway Postgres cache mode; rollback target while an environment selects Redis |
content_items |
Thin AppView standard.site and RSS entry index |
read_marks, appview_unread_overrides
|
Explicit per-entry read/unread state |
appview_publication_read_floors |
Scoped bulk-read boundaries used by Mark All As Read |
appview_publication_scopes, appview_unread_counters
|
Materialized publication membership and unread totals |
appview_viewer_feeds, appview_feed_publications, appview_publication_scope_keys
|
Viewer feed membership and publication aliases |
appview_ingestion_*, appview_jetstream_endpoints
|
Relay checkpoints, gaps, and recovery controls |
appview_tap_*, appview_projection_repair_outbox
|
Retired Tap registration/parity evidence and current projection repair |
operations_* |
Operations health, alerts, commands, audit, events, metrics, and traces |
rss_feed_fetch_metadata |
Skyreader RSS poll state |
POST /xrpc/app.thesocialwire.appview.purgeViewerData currently removes only the authenticated
viewer’s read_marks and appview_unread_overrides. It does not remove bulk-read
floors, materialized counters, publication scopes, feed membership, or indexed
content. See Account-settings-and-privacy before describing the action as a
complete account-data deletion.
GitHub Actions does not mutate hosted databases. Railway's dedicated Database Migrator service applies the migration history before dependent services deploy; validate it locally against a disposable Postgres database.