55 lines
3.2 KiB
Markdown
55 lines
3.2 KiB
Markdown
# Production versus older schema snapshot
|
|
|
|
Compared files:
|
|
|
|
- Current production evidence: `directus/schema.yaml`, Directus 12.1.1, MySQL.
|
|
- Older repository snapshot: `app/schema.yaml`, Directus 11.12.0, MySQL.
|
|
|
|
The supplied hashes differ. A structural YAML comparison found 36 versus 34 collection entries, 394 versus 379 field entries, and 138 versus 136 relation entries. Neither snapshot was modified.
|
|
|
|
## Meaningful additions
|
|
|
|
### `directus_users` collection metadata
|
|
|
|
The current snapshot includes `directus_users` as a collection with display template `{{ username }} ({{ email }})`. The older snapshot contains the custom `directus_users.username` field and relations to the system collection but omits the collection entry itself.
|
|
|
|
The username field remains a unique nullable `varchar(255)` at the database layer while Directus metadata marks it required, visible, editable, and searchable. The older snapshot has the same database and required-field characteristics; current metadata additionally contains the Directus 12 `searchable` property.
|
|
|
|
### `user_memberships`
|
|
|
|
Production adds the `user_memberships` collection with 15 fields:
|
|
|
|
- Integer auto-increment primary key: `id`.
|
|
- Provider/account data: `provider`, `external_user_id`, `email`, `username`, `status`, `tier`.
|
|
- Timing: `started_at`, `renews_at`, `last_event_at`.
|
|
- Claim/support data: `claim_token`, `claim_expires_at`, `raw`.
|
|
- User relations: `app_user`, `claim_user_id`.
|
|
|
|
`app_user` and `claim_user_id` are nullable indexed M2O foreign keys to `directus_users.id`; both use `SET NULL` on delete and `RESTRICT` on update. The schema does not mark `claim_token` unique. Provider choices are Ko-Fi, Patreon, and LMA/Mighty; status choices are active, canceled, refunded, and one-time. These are metadata choices, not database constraints.
|
|
|
|
### Settings raster metadata
|
|
|
|
The `settings_co2gal.raster_settings` repeater gained three nested metadata fields: `angle` (integer), `auto` (boolean), and `increment` (integer). These are changes inside the JSON/repeater field definition, not new top-level database columns.
|
|
|
|
### Display metadata
|
|
|
|
- `settings_co2gal.owner` changed from no display renderer to related-values with template `{{username}}`.
|
|
- `bg_entries.scores` changed its display formatting template from `{{ cat }}` to `{{ body }}`.
|
|
|
|
## Version-generated metadata differences
|
|
|
|
Most raw differences are serialization changes rather than business-schema changes:
|
|
|
|
- All 34 pre-existing collection entries gained `meta.autosave_revision_interval: null` and `meta.status: active`.
|
|
- All 379 pre-existing field entries gained `meta.searchable: true`.
|
|
|
|
These additions are consistent across the snapshots and correspond to newer snapshot metadata emitted by Directus 12. They do not by themselves show database-column changes.
|
|
|
|
## Unchanged structural areas
|
|
|
|
- No older collection, field, or relation key was removed.
|
|
- All 136 relations present in the older snapshot compare equal structurally.
|
|
- The two added relations are the new `user_memberships` links described above.
|
|
- Database vendor remains MySQL and snapshot format version remains 1.
|
|
|
|
This comparison is structural and does not compare data, permissions, policies, flows, settings-table values, indexes not represented by the snapshot, extension behavior, or migration history.
|