managarten/picture/verify-db-setup.sql
Till-JS c712a2504a feat: integrate uload and picture, unify package naming
- Add uload project with apps/web structure
  - Reorganize from flat to monorepo structure
  - Remove PocketBase binary and local data
  - Update to pnpm and @uload/web namespace

- Add picture project to monorepo
  - Remove embedded git repository

- Unify all package names to @{project}/{app} schema:
  - @maerchenzauber/* (was @storyteller/*)
  - @manacore/* (was manacore-*, manacore)
  - @manadeck/* (was web, backend, manadeck)
  - @memoro/* (was memoro-web, landing, memoro)
  - @picture/* (already unified)
  - @uload/web

- Add convenient dev scripts for all apps:
  - pnpm dev:{project}:web
  - pnpm dev:{project}:landing
  - pnpm dev:{project}:mobile
  - pnpm dev:{project}:backend

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-25 04:00:36 +01:00

105 lines
3.8 KiB
SQL

-- VERIFICATION SCRIPT
-- Run this in Supabase SQL Editor to verify the migration was successful
-- ============================================================================
-- 1. CHECK TABLES
-- ============================================================================
SELECT 'job_queue table' as check_name,
CASE WHEN EXISTS (
SELECT FROM pg_tables WHERE schemaname = 'public' AND tablename = 'job_queue'
) THEN '✅ EXISTS' ELSE '❌ MISSING' END as status;
-- ============================================================================
-- 2. CHECK FUNCTIONS
-- ============================================================================
SELECT 'enqueue_job function' as check_name,
CASE WHEN EXISTS (
SELECT FROM pg_proc p
JOIN pg_namespace n ON p.pronamespace = n.oid
WHERE n.nspname = 'public' AND p.proname = 'enqueue_job'
) THEN '✅ EXISTS' ELSE '❌ MISSING' END as status
UNION ALL
SELECT 'claim_next_job function' as check_name,
CASE WHEN EXISTS (
SELECT FROM pg_proc p
JOIN pg_namespace n ON p.pronamespace = n.oid
WHERE n.nspname = 'public' AND p.proname = 'claim_next_job'
) THEN '✅ EXISTS' ELSE '❌ MISSING' END as status
UNION ALL
SELECT 'complete_job function' as check_name,
CASE WHEN EXISTS (
SELECT FROM pg_proc p
JOIN pg_namespace n ON p.pronamespace = n.oid
WHERE n.nspname = 'public' AND p.proname = 'complete_job'
) THEN '✅ EXISTS' ELSE '❌ MISSING' END as status;
-- ============================================================================
-- 3. CHECK VIEWS
-- ============================================================================
SELECT 'queue_health view' as check_name,
CASE WHEN EXISTS (
SELECT FROM pg_views WHERE schemaname = 'public' AND viewname = 'queue_health'
) THEN '✅ EXISTS' ELSE '❌ MISSING' END as status
UNION ALL
SELECT 'failed_jobs_recent view' as check_name,
CASE WHEN EXISTS (
SELECT FROM pg_views WHERE schemaname = 'public' AND viewname = 'failed_jobs_recent'
) THEN '✅ EXISTS' ELSE '❌ MISSING' END as status
UNION ALL
SELECT 'stuck_jobs view' as check_name,
CASE WHEN EXISTS (
SELECT FROM pg_views WHERE schemaname = 'public' AND viewname = 'stuck_jobs'
) THEN '✅ EXISTS' ELSE '❌ MISSING' END as status;
-- ============================================================================
-- 4. CHECK INDEXES
-- ============================================================================
SELECT
'Indexes on job_queue' as check_name,
COUNT(*)::text || ' indexes created' as status
FROM pg_indexes
WHERE schemaname = 'public' AND tablename = 'job_queue';
-- ============================================================================
-- 5. TEST ENQUEUE FUNCTION
-- ============================================================================
-- Create a test job
DO $$
DECLARE
v_job_id UUID;
BEGIN
SELECT enqueue_job(
'generate-image',
'{"test": true, "prompt": "Database verification test"}'::JSONB,
0
) INTO v_job_id;
RAISE NOTICE '✅ Test job created: %', v_job_id;
-- Clean up test job
DELETE FROM job_queue WHERE id = v_job_id;
RAISE NOTICE '✅ Test job cleaned up';
END $$;
-- ============================================================================
-- 6. FINAL STATUS
-- ============================================================================
SELECT
'🎉 DATABASE SETUP COMPLETE!' as message,
(SELECT COUNT(*) FROM pg_tables WHERE schemaname = 'public' AND tablename = 'job_queue') as tables_created,
(SELECT COUNT(*) FROM pg_proc p JOIN pg_namespace n ON p.pronamespace = n.oid WHERE n.nspname = 'public' AND p.proname IN ('enqueue_job', 'claim_next_job', 'complete_job')) as functions_created,
(SELECT COUNT(*) FROM pg_views WHERE schemaname = 'public' AND viewname IN ('queue_health', 'failed_jobs_recent', 'stuck_jobs')) as views_created;