-- Adds `Source.official` (Boolean, no default — every source must state -- it explicitly, mirrors `RecipeSourceAdapter.official`) and `house_source`, -- an opt-in join table: a household sees recipes from a source only once a -- row exists for it (no row = hidden). `sources` has never been seeded -- (no adapter registered yet), so a plain NOT NULL column with no backfill -- is safe. -- AlterTable ALTER TABLE "sources" ADD COLUMN "official" BOOLEAN NOT NULL; -- CreateTable CREATE TABLE "house_source" ( "house_id" INTEGER NOT NULL, "source_id" INTEGER NOT NULL, CONSTRAINT "house_source_pkey" PRIMARY KEY ("house_id", "source_id") ); -- AddForeignKey ALTER TABLE "house_source" ADD CONSTRAINT "house_source_house_id_fkey" FOREIGN KEY ("house_id") REFERENCES "house"("id") ON DELETE CASCADE ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "house_source" ADD CONSTRAINT "house_source_source_id_fkey" FOREIGN KEY ("source_id") REFERENCES "sources"("id") ON DELETE CASCADE ON UPDATE CASCADE;