Schema Atlas
atlas · verified 2026-10-23T11:51:54.104692+00:00 · map sha256:663921390538413e…
driftBreaking change: code written against the previous map can fail.
0tables
0columns
0retyped
5new tenant drift
- Tenant `a41ce52d-e34b-4279-8077-ecac9ec1b36b` drifted on `customers`: changed display_name.
- Tenant `a5dc99b2-4faa-46d8-89c3-5c10b24298f7` drifted on `customers`: extra phone.
- Tenant `a1d40a1f-2895-4e43-89a4-7c70ecac4731` drifted on `orders`: extra gift_note.
- Tenant `a73c4bdf-f32c-47c4-8617-cd5fdfa61f6a` drifted on `orders`: extra priority.
- Tenant `ae06c110-c543-416a-828b-a9a0868e0021` drifted on `payments`: extra refund_ref.
Logical tables
customers
| Column | Type | Flags |
|---|---|---|
id | uuid | PK NOT NULL |
email | text | NOT NULL |
display_name | text | — |
created_at | timestamp with time zone | NOT NULL |
a41ce52d-e34b-4279-8077-ecac9ec1b36b — changed display_namea5dc99b2-4faa-46d8-89c3-5c10b24298f7 — extra phoneorders
| Column | Type | Flags |
|---|---|---|
id | uuid | PK NOT NULL |
customer_id | uuid | NOT NULL |
order_subtotal_cents | bigint | NOT NULL |
order_placed_at | timestamp with time zone | NOT NULL |
22222222-2222-2222-2222-222222222222 — extra rush_shippinga1d40a1f-2895-4e43-89a4-7c70ecac4731 — extra gift_notea73c4bdf-f32c-47c4-8617-cd5fdfa61f6a — extra prioritypayments
| Column | Type | Flags |
|---|---|---|
id | uuid | PK NOT NULL |
order_id | uuid | NOT NULL |
gross_amount_minor | numeric(12,2) | NOT NULL |
currency | character(3) | NOT NULL |
funds_captured_at | timestamp with time zone | — |
fee_cents | bigint | NOT NULL |
22222222-2222-2222-2222-222222222222 — missing fee_cents; extra legacy_ref33333333-3333-3333-3333-333333333333 — missing currency, fee_centsae06c110-c543-416a-828b-a9a0868e0021 — extra refund_refpublic.tenants
| Column | Type | Flags |
|---|---|---|
id | uuid | PK NOT NULL |
name | text | NOT NULL |
plan | text | NOT NULL |
created_at | timestamp with time zone | NOT NULL |
What this map cannot tell you
It compares column name, type and nullability. It does not read defaults, primary-key changes, unique or check constraints, indexes, foreign keys, triggers or row-level security. A map that agrees with the database can still hide a constraint that disagrees.
Use it from an agent
Add .gitlab/duo/mcp.json and ask Duo CLI: “Which tables have a
currency column, and which tenants are missing it?” The answer comes from
this map, not from the model.