Database Properties
Database Type: PostgreSQL - 18.4 (Ubuntu 18.4-1.pgdg24.04+1)
Schema public
standard public schema
Tables
| Table / View | Children | Parents | Columns | Type | Comments |
|---|---|---|---|---|---|
| blog_critiques | 0 | 0 | 8 | Table | {“what”:“A single critique run over a set of blog posts, with metadata and results.”,“why”:“Without it, results from different runs would be indistinguishable.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T00:09:50.699225761+00:00”} |
| quality_scores | 0 | 2 | 23 | Table | {“what”:“Per-draft quality metrics and analysis results from a scoring job.”,“why”:“Without it, there is no record linking drafts to their quality scores and job context.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T00:11:33.052476990+00:00”} |
| published_posts | 1 | 2 | 16 | Table | {“what”:“A published blog post with rendered content and SEO metadata.”,“why”:“Serves as the canonical record for live posts, separating them from drafts and enabling retrieval by slug.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T00:10:17.059488340+00:00”} |
| serp_analyses | 0 | 1 | 9 | Table | {“what”:“One row per SERP analysis run for a job and snapshot.”,“why”:“Without it, extracted insights from a SERP snapshot are lost, so downstream decisions lack evidence.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T00:10:24.465971623+00:00”} |
| post_tags | 0 | 1 | 6 | Table | {“what”:“One row per tag applied to a post, identified by post_slug.”,“why”:“Without it, tag assignments for posts are unknown, making tag-based queries and weighting impossible.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T00:10:12.485539407+00:00”} |
| post_sources | 0 | 1 | 9 | Table | {“what”:“Associates a post (by slug) with an external source; one row per source.”,“why”:“Without it, the post’s citations and source links are missing.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T04:17:49.114337780+00:00”} |
| news_packs | 0 | 0 | 10 | Table | {“what”:“A collection of news articles and derived metrics for a single topic.”,“why”:“Groups all news data and metadata for one topic so it can be cached and served as a unit.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T00:09:58.950324948+00:00”} |
| pipeline_jobs | 5 | 0 | 11 | Table | {“what”:“A job in the content generation pipeline, tracking a single keyword-to-article workflow.”,“why”:“Without it, there is no record of each content request’s progress and state.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T04:17:29.868963545+00:00”} |
| post_brief | 3 | 0 | 17 | Table | {“what”:“A row per post brief, linking a post to its generated content and metadata.”,“why”:“Without it, generated briefs cannot be persisted or retrieved per post.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T04:17:54.736704953+00:00”} |
| editorial_briefs | 0 | 1 | 11 | Table | {“what”:“A brief that guides content generation for a job.”,“why”:“Without it, content generation lacks a structured specification.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T04:17:17.048773666+00:00”} |
| drafts | 2 | 1 | 10 | Table | {“what”:“A single revision of generated content for a job, with markdown and HTML.”,“why”:“Without it, previous versions of job content cannot be compared or restored.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T00:10:01.797315855+00:00”} |
| post_topics | 0 | 1 | 6 | Table | {“what”:“One row per post-topic assignment, linking a post slug to a topic angle and its vector.”,“why”:“Without it, post-topic relationships and their vector representations are unknown, breaking topic-based filtering and recommendation.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T04:17:54.227650060+00:00”} |
| keywords | 0 | 1 | 6 | Table | {“what”:“A keyword record with search volume, difficulty, and optional post link.”,“why”:“Without it, keyword metrics and their post associations are lost, preventing SEO analysis.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T00:10:11.780073615+00:00”} |