first commit

This commit is contained in:
2026-08-24 13:06:29 +05:30
commit 7d12ebef3d
86 changed files with 39996 additions and 0 deletions

66
scripts/verify_schema.sql Normal file
View File

@@ -0,0 +1,66 @@
-- Reports what actually exists in the application schema.
-- Read-only. Uses information_schema and pg_indexes, both standard views;
-- no system catalog is written and no object is modified.
\echo '── Applied migration ─────────────────────────────────────────────────'
SELECT version, dirty FROM schema_migrations;
\echo ''
\echo '── Tables in the application schema ──────────────────────────────────'
SELECT table_name
FROM information_schema.tables
WHERE table_schema = current_schema() AND table_type = 'BASE TABLE'
AND table_name <> 'schema_migrations'
ORDER BY table_name;
\echo ''
\echo '── Enum types and their values ───────────────────────────────────────'
SELECT t.typname AS enum_type,
string_agg(e.enumlabel, ', ' ORDER BY e.enumsortorder) AS values
FROM pg_type t
JOIN pg_enum e ON e.enumtypid = t.oid
JOIN pg_namespace n ON n.oid = t.typnamespace
WHERE n.nspname = current_schema()
GROUP BY t.typname
ORDER BY t.typname;
\echo ''
\echo '── Constraint counts by type ─────────────────────────────────────────'
SELECT CASE contype
WHEN 'p' THEN 'primary key'
WHEN 'f' THEN 'foreign key'
WHEN 'u' THEN 'unique'
WHEN 'c' THEN 'check'
END AS constraint_type,
count(*) AS total
FROM pg_constraint c
JOIN pg_namespace n ON n.oid = c.connamespace
WHERE n.nspname = current_schema() AND contype IN ('p','f','u','c')
GROUP BY contype
ORDER BY contype;
\echo ''
\echo '── Foreign keys ──────────────────────────────────────────────────────'
SELECT conrelid::regclass::text AS child,
confrelid::regclass::text AS parent,
conname AS constraint_name
FROM pg_constraint c
JOIN pg_namespace n ON n.oid = c.connamespace
WHERE n.nspname = current_schema() AND contype = 'f'
ORDER BY child, parent, conname;
\echo ''
\echo '── Indexes ───────────────────────────────────────────────────────────'
SELECT tablename, indexname
FROM pg_indexes
WHERE schemaname = current_schema() AND tablename <> 'schema_migrations'
ORDER BY tablename, indexname;
\echo ''
\echo '── Objects outside the application schema created by this migration ──'
\echo '(expected: zero rows)'
SELECT n.nspname AS schema, c.relname AS object
FROM pg_class c
JOIN pg_namespace n ON n.oid = c.relnamespace
WHERE n.nspname NOT IN ('pg_catalog','information_schema','pg_toast', current_schema())
AND c.relkind IN ('r','i','S');