[object Object]

← back to Wallco Ai

fix: ensureUserRemovedColumn targets all_designs base table, not view

71e56c5d2101333e2be26adb67a7938da03e17d3 · 2026-05-26 08:02:46 -0700 · Steve Abrams

Files touched

Diff

commit 71e56c5d2101333e2be26adb67a7938da03e17d3
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Tue May 26 08:02:46 2026 -0700

    fix: ensureUserRemovedColumn targets all_designs base table, not view
---
 server.js | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/server.js b/server.js
index f708b18..0eabea0 100644
--- a/server.js
+++ b/server.js
@@ -2080,14 +2080,15 @@ function ensureTradeUserTables() {
 }
 ensureTradeUserTables();
 
-// ── Ensure user_removed column on spoon_all_designs ─────────────────
-// The /api/design/:id/remove endpoint writes user_removed=TRUE to this
-// column. On prod, the column was missing — UPDATE returned "column does
-// not exist" and the soft-remove silently failed. Add it idempotently.
+// ── Ensure user_removed column on all_designs ────────────────────────
+// The /api/design/:id/remove endpoint writes user_removed=TRUE through
+// the spoon_all_designs view (which enumerates this column). Target the
+// base table all_designs — spoon_all_designs is a VIEW and ALTER/CREATE
+// INDEX on a view throws every server boot.
 function ensureUserRemovedColumn() {
   try {
-    psqlQuery(`ALTER TABLE spoon_all_designs ADD COLUMN IF NOT EXISTS user_removed BOOLEAN NOT NULL DEFAULT FALSE;`);
-    psqlQuery(`CREATE INDEX IF NOT EXISTS spoon_all_designs_user_removed_idx ON spoon_all_designs(user_removed) WHERE user_removed = TRUE;`);
+    psqlQuery(`ALTER TABLE all_designs ADD COLUMN IF NOT EXISTS user_removed BOOLEAN NOT NULL DEFAULT FALSE;`);
+    psqlQuery(`CREATE INDEX IF NOT EXISTS spoon_all_designs_user_removed_idx ON all_designs(user_removed) WHERE user_removed = TRUE;`);
   } catch (e) {
     console.error('[migrate] ensureUserRemovedColumn:', e.message);
   }

← 6e609a5 fliepaper-bugs: scrub category-leak in generator + YOLO loop  ·  back to Wallco Ai  ·  elements skill: /admin/elements browse UI + bake-at-ingest p 50890a3 →