← 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 →