-- FIX "Failed to publish" op locatie- en gewone pagina's (collecties `locaties` + `paginas`). -- -- OORZAAK (deterministisch, geverifieerd): de setup-wizard maakte voor deze twee collecties -- een FTS5-zoekindex aan als EXTERNE-CONTENT-tabel (`content='ec_locaties'`), met sync-triggers -- op INSERT/UPDATE/DELETE. De UPDATE-trigger doet `DELETE FROM _emdash_fts_* WHERE rowid=OLD.rowid`. -- Bij een externe-content FTS5-tabel herberekent die DELETE de oude termen door de bron-tabel te -- lezen — maar tijdens AFTER UPDATE is die rij AL bijgewerkt, dus de index klopt niet meer en -- SQLite gooit "database disk image is malformed". De hele UPDATE rolt terug. -- -- Publiceren roept intern `syncDataColumns` aan = `UPDATE ec_locaties SET ` → trigger -- vuurt → fout → status wordt nooit 'published'. (De /maastricht-pagina staat alleen live omdat -- die als 'published' is GESEED via een INSERT, dus nooit het UPDATE-pad raakte.) Lokaal 1-op-1 -- gereproduceerd met de exacte trigger-DDL: INSERT lukt, UPDATE faalt. -- -- FIX: maak deze collecties non-searchable — net als alle ZELF-gegenereerde collecties -- (over_ons/diensten/homepage/contact_page/voorwaarden), die bewust geen FTS hebben en wél -- publiceren. We droppen de triggers + de FTS-virtualtabellen (incl. shadow-tabellen) en zetten -- searchable=0. De frontend gebruikt geen full-text-search (routes halen op via slug); alleen de -- admin-zoekbalk voor deze twee collecties valt weg. Pure DB-wijziging → geen redeploy nodig. -- -- Toepassen op remote D1: -- node node_modules/wrangler/bin/wrangler.js d1 execute helvoirt-db --remote --file migrations/0014_fix_publish_drop_fts.sql DROP TRIGGER IF EXISTS "_emdash_fts_locaties_insert"; DROP TRIGGER IF EXISTS "_emdash_fts_locaties_update"; DROP TRIGGER IF EXISTS "_emdash_fts_locaties_delete"; DROP TABLE IF EXISTS "_emdash_fts_locaties"; DROP TRIGGER IF EXISTS "_emdash_fts_paginas_insert"; DROP TRIGGER IF EXISTS "_emdash_fts_paginas_update"; DROP TRIGGER IF EXISTS "_emdash_fts_paginas_delete"; DROP TABLE IF EXISTS "_emdash_fts_paginas"; UPDATE _emdash_fields SET searchable = 0 WHERE collection_id IN ( SELECT id FROM _emdash_collections WHERE slug IN ('locaties', 'paginas') );