From a67e3d741db5afaef309e794c94466a2ccaef51a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Padez?= Date: Mon, 31 Aug 2026 07:16:38 +0100 Subject: [PATCH] publish the pages, the sections and the components MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit They were never in CONTENT_TABLES, so publish copied every table it knew about and none of the page builder's. The symptom is the exact failure this list's own comment warns about: nothing failed. The copy succeeded, the build rendered production faithfully, and the home page came out as the empty-page placeholder — because production held the seeded layout and no content. Parents before children, and first: a section belongs to a page, a component to a section. `galleries` stays below them because a gallery block names a set by id carried in JSON rather than as a foreign key — nothing enforces that order, which is why it is written down. `site_layout` too. Production had no row at all, which reads as "the defaults" and is indistinguishable from a setting nobody has changed. Co-Authored-By: Claude Opus 5 (1M context) --- api/publish.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/api/publish.ts b/api/publish.ts index c04fd49..970f792 100644 --- a/api/publish.ts +++ b/api/publish.ts @@ -38,6 +38,25 @@ import { buildSite } from './static-site'; /** The site's content. Parents before children, so the restore satisfies its own foreign keys. */ const CONTENT_TABLES = [ + /* + The page builder's own tables, and the reason they are FIRST. + + Parents before children: a section belongs to a page and a component to a section. `galleries` sits + below them because a gallery block names a set by id — carried in JSON rather than as a foreign + key, so nothing enforces the order, which is exactly why it is written down. + + They were missing until 2026-08-31, and the symptom was the whole point of this file: publish + copied every table it knew about, the build rendered production faithfully, and the home page came + out as the empty-page placeholder because production had the seeded layout and no content. Nothing + failed. The list is explicit so that a table added later is CONSIDERED — this is what it looks like + when one is not. + */ + 'pages', + 'sections', + 'components', + // The site's colours, faces and default gutter. A singleton, and production had no row at all — + // which reads as "the defaults" and is indistinguishable from a setting nobody has changed yet. + 'site_layout', 'home_content', 'home_gallery_media', 'about_content',