← back to Small Business Builder
migrations/004_business_articles.sql
42 lines
-- Captured 2026-05-04 from local DB schema drift before fresh-deploy reproducibility.
-- Idempotent — re-running on a populated DB is a no-op.
\restrict L5liGadvThkoMt9pgBBbmPZUEnOvCinn0z0sWK0dFxf9E4hHYXj7v0oVMnJqBYP
CREATE TABLE IF NOT EXISTS business_articles (
id bigint NOT NULL,
business_id bigint NOT NULL,
url text NOT NULL,
title text,
publisher text,
published_at timestamp with time zone,
excerpt text,
source text DEFAULT 'exa'::text NOT NULL,
raw_json jsonb,
created_at timestamp with time zone DEFAULT now()
);
CREATE SEQUENCE IF NOT EXISTS business_articles_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE business_articles_id_seq OWNED BY business_articles.id;
ALTER TABLE ONLY business_articles ALTER COLUMN id SET DEFAULT nextval('business_articles_id_seq'::regclass);
ALTER TABLE ONLY business_articles
ADD CONSTRAINT business_articles_pkey PRIMARY KEY (id);
CREATE INDEX IF NOT EXISTS idx_article_business ON business_articles USING btree (business_id);
CREATE UNIQUE INDEX IF NOT EXISTS uq_article_biz_url ON business_articles USING btree (business_id, url);
ALTER TABLE ONLY business_articles
ADD CONSTRAINT business_articles_business_id_fkey FOREIGN KEY (business_id) REFERENCES businesses(id) ON DELETE CASCADE;
\unrestrict L5liGadvThkoMt9pgBBbmPZUEnOvCinn0z0sWK0dFxf9E4hHYXj7v0oVMnJqBYP