Tables group_visits_page, birthday_page and their _v counterparts were missing from the DB
despite prior migrations being marked applied. The updated migration uses CREATE TABLE IF NOT EXISTS,
DO/EXCEPTION blocks for enum types and FK constraints, and ADD COLUMN IF NOT EXISTS to recover
the full schema before adding form_id relationship columns.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Creates forms, form_submissions and all related block tables for the @payloadcms/plugin-form-builder integration.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Inserts the ДивоЛіс location into locations table with showDetailPage=true
plus heroTips and whyVisitItems child records. Idempotent (ON CONFLICT/DELETE+INSERT).
Run by the psql migrator on next deploy.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- migrations/0002_delta.sql: idempotent SQL extracted from 20260515_162527.ts
(redirects table, locations detail fields, globals versioning, new pages)
so the psql migrator container applies it on next deploy
- Dockerfile: ARG/ENV NEXT_PUBLIC_SITE_URL in builder stage so the URL is
baked into the Next.js bundle (fixes postMessage origin warning in admin)
- docker-compose.prod.yml: pass build arg NEXT_PUBLIC_SITE_URL=https://shumi.ai-impress.com
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Fix ZodError: EZY API returns params=null, use .nullish() instead of .optional()
- Add manual SQL migration for new collections (locations, reviews,
birthday_packages) and schema changes (header ctaLabel/ctaHref,
navLinks autoChildrenFrom/children, homepage sectionTitles/whyParents/
gallery/video/birthdayIntro groups)
- Note: push:true doesn't run CLI drizzle-kit in standalone build;
run migrations/0001_new_collections.sql manually on new environments
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>