mirror of
https://github.com/complexcaresolutions/cms.c2sgmbh.git
synced 2026-03-17 18:34:13 +00:00
docs: add critical guidance for adding new collections
Document the payload_locked_documents_rels system table requirement: - Every new collection needs a column in this system table - Without it, RSC render errors occur after login - Include SQL template for migrations - Add guidance for array fields requiring extra tables Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
5a60d94cf9
commit
0a840f9033
1 changed files with 40 additions and 1 deletions
41
CLAUDE.md
41
CLAUDE.md
|
|
@ -287,6 +287,45 @@ scripts/backup/setup-backup.sh # Backup-System einricht
|
||||||
2. `git add src/migrations/` - Migration committen
|
2. `git add src/migrations/` - Migration committen
|
||||||
3. Auf PROD nach Deployment: `./scripts/sync-schema.sh` wird automatisch ausgeführt
|
3. Auf PROD nach Deployment: `./scripts/sync-schema.sh` wird automatisch ausgeführt
|
||||||
|
|
||||||
|
### ⚠️ KRITISCH: Neue Collections hinzufügen
|
||||||
|
|
||||||
|
Beim Hinzufügen einer neuen Collection müssen **System-Tabellen** manuell aktualisiert werden!
|
||||||
|
|
||||||
|
**Problem:** Payload CMS verwendet `payload_locked_documents_rels` um Document-Locks über alle Collections zu tracken. Diese Tabelle benötigt eine `{collection}_id` Spalte für JEDE Collection. Ohne diese Spalte tritt nach dem Login ein RSC-Fehler auf:
|
||||||
|
```
|
||||||
|
Error: An error occurred in the Server Components render
|
||||||
|
caused by: column payload_locked_documents_rels.{collection}_id does not exist
|
||||||
|
```
|
||||||
|
|
||||||
|
**Lösung:** Die Migration für eine neue Collection MUSS folgendes enthalten:
|
||||||
|
|
||||||
|
```sql
|
||||||
|
-- 1. Collection-Tabellen erstellen (normal)
|
||||||
|
CREATE TABLE IF NOT EXISTS "{collection}" (...);
|
||||||
|
CREATE TABLE IF NOT EXISTS "{collection}_rels" (...); -- falls benötigt
|
||||||
|
CREATE TABLE IF NOT EXISTS "{collection}_locales" (...); -- falls lokalisiert
|
||||||
|
|
||||||
|
-- 2. KRITISCH: System-Tabelle aktualisieren!
|
||||||
|
ALTER TABLE "payload_locked_documents_rels"
|
||||||
|
ADD COLUMN IF NOT EXISTS "{collection}_id" integer
|
||||||
|
REFERENCES {collection}(id) ON DELETE CASCADE;
|
||||||
|
|
||||||
|
CREATE INDEX IF NOT EXISTS "payload_locked_documents_rels_{collection}_idx"
|
||||||
|
ON "payload_locked_documents_rels" ("{collection}_id");
|
||||||
|
```
|
||||||
|
|
||||||
|
**Beispiel-Migration:** `src/migrations/20260109_020000_add_blogwoman_collections.ts`
|
||||||
|
|
||||||
|
**Array-Felder:** Collections mit Array-Feldern (z.B. `hours_structured` in Locations) benötigen zusätzliche Tabellen:
|
||||||
|
```sql
|
||||||
|
CREATE TABLE IF NOT EXISTS "{collection}_{array_field}" (
|
||||||
|
"id" serial PRIMARY KEY NOT NULL,
|
||||||
|
"_order" integer NOT NULL,
|
||||||
|
"_parent_id" integer NOT NULL REFERENCES {collection}(id) ON DELETE CASCADE,
|
||||||
|
-- Array-Feld-Spalten hier
|
||||||
|
);
|
||||||
|
```
|
||||||
|
|
||||||
## Bekannte Besonderheiten
|
## Bekannte Besonderheiten
|
||||||
|
|
||||||
- **ES Modules:** package.json hat `"type": "module"`, daher PM2 Config als `.cjs`
|
- **ES Modules:** package.json hat `"type": "module"`, daher PM2 Config als `.cjs`
|
||||||
|
|
@ -1177,4 +1216,4 @@ ssh payload@162.55.85.18
|
||||||
### Scripts & Backup
|
### Scripts & Backup
|
||||||
- `scripts/backup/README.md` - Backup-System Dokumentation
|
- `scripts/backup/README.md` - Backup-System Dokumentation
|
||||||
|
|
||||||
*Letzte Aktualisierung: 29.12.2025*
|
*Letzte Aktualisierung: 09.01.2026*
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue