# Technischer Rename: capakraken → capakraken — Migrationsplan ## Uebersicht | Kategorie | Dateien | Vorkommen | Aufwand | Risiko | |-----------|---------|-----------|---------|--------| | **A: Package-Namen & Imports** | 277 | 548 | 3 Std | KRITISCH | | **B: Datenbank & Docker** | 26 | 32 | 30 Min | KRITISCH | | **C: CI/CD & Scripts** | 13 | 45 | 15 Min | HOCH | | **D: Dokumentation** | 30 | 200+ | 1 Std | MITTEL | | **E: Test-Daten & Emails** | 35 | 85 | 30 Min | HOCH | | **Gesamt** | **372** | **910+** | **~5 Std** | | --- ## Phase 1: Package-Namen & Imports (KRITISCH) ### 1.1 Package-Namen umbenennen (12 package.json) | Alt | Neu | |-----|-----| | `@capakraken/api` | `@capakraken/api` | | `@capakraken/application` | `@capakraken/application` | | `@capakraken/db` | `@capakraken/db` | | `@capakraken/engine` | `@capakraken/engine` | | `@capakraken/shared` | `@capakraken/shared` | | `@capakraken/staffing` | `@capakraken/staffing` | | `@capakraken/ui` | `@capakraken/ui` | | `@capakraken/web` | `@capakraken/web` | | `@capakraken/eslint-config` | `@capakraken/eslint-config` | | `@capakraken/prettier-config` | `@capakraken/prettier-config` | | `@capakraken/tsconfig` | `@capakraken/tsconfig` | ### 1.2 Import-Statements (277 Dateien, 548 Vorkommen) ```bash # Globaler Find+Replace find . -type f \( -name "*.ts" -o -name "*.tsx" \) \ -not -path "*/node_modules/*" -not -path "*/.next/*" \ -exec sed -i 's/@capakraken\//@capakraken\//g' {} + ``` ### 1.3 tsconfig.json Path-Mappings (8 Dateien) ``` "@capakraken/*" → "@capakraken/*" ``` ### 1.4 next.config.ts transpilePackages ``` "@capakraken/api" → "@capakraken/api" (6 Eintraege) ``` --- ## Phase 2: Datenbank & Docker (KRITISCH) ### 2.1 Docker Compose (2 Dateien, 32 Vorkommen) | Alt | Neu | |-----|-----| | `POSTGRES_DB: capakraken` | `POSTGRES_DB: capakraken` | | `POSTGRES_USER: capakraken` | `POSTGRES_USER: capakraken` | | `POSTGRES_PASSWORD: capakraken_dev` | `POSTGRES_PASSWORD: capakraken_dev` | | `capakraken_pgdata` (Volume) | `capakraken_pgdata` | | `capakraken_prod_pgdata` | `capakraken_prod_pgdata` | | `capakraken_prod_redis` | `capakraken_prod_redis` | | `admin@capakraken.dev` (pgAdmin) | `admin@capakraken.dev` | ### 2.2 Datenbank migrieren ```bash # 1. Backup erstellen docker exec capakraken-postgres-1 pg_dump -U capakraken capakraken > backup.sql # 2. Neue DB + User erstellen docker exec capakraken-postgres-1 psql -U postgres -c " CREATE USER capakraken WITH PASSWORD 'capakraken_dev'; CREATE DATABASE capakraken OWNER capakraken; GRANT ALL PRIVILEGES ON DATABASE capakraken TO capakraken; " # 3. Daten importieren docker exec -i capakraken-postgres-1 psql -U capakraken capakraken < backup.sql # 4. .env.local aktualisieren DATABASE_URL=postgresql://capakraken:capakraken_dev@localhost:5433/capakraken ``` ### 2.3 Environment-Dateien (3 Dateien) ``` DATABASE_URL=postgresql://capakraken:capakraken_dev@localhost:5433/capakraken → DATABASE_URL=postgresql://capakraken:capakraken_dev@localhost:5433/capakraken ``` --- ## Phase 3: CI/CD & Scripts (HOCH) ### 3.1 GitHub Actions (.github/workflows/ci.yml, 25 Vorkommen) ```bash sed -i 's/@capakraken\//@capakraken\//g' .github/workflows/ci.yml sed -i 's/capakraken_test/capakraken_test/g' .github/workflows/ci.yml sed -i 's/POSTGRES_USER: capakraken/POSTGRES_USER: capakraken/g' .github/workflows/ci.yml sed -i 's/pg_isready -U capakraken/pg_isready -U capakraken/g' .github/workflows/ci.yml ``` ### 3.2 Root package.json Scripts (9 Vorkommen) ```bash sed -i 's/@capakraken\//@capakraken\//g' package.json ``` ### 3.3 Start/Stop/Restart Scripts ```bash sed -i 's/capakraken/capakraken/g' scripts/start.sh scripts/stop.sh scripts/restart.sh ``` ### 3.4 Dependabot ```bash sed -i 's/capakraken/capakraken/g' .github/dependabot.yml ``` --- ## Phase 4: Test-Daten & Emails (HOCH) ### 4.1 Seed-Dateien (2 Dateien) ``` admin@capakraken.dev → admin@capakraken.dev manager@capakraken.dev → manager@capakraken.dev viewer@capakraken.dev → viewer@capakraken.dev ``` ### 4.2 E2E-Tests (11 Spec-Dateien) ```bash find apps/web/e2e -name "*.spec.ts" \ -exec sed -i 's/@capakraken\.dev/@capakraken.dev/g' {} + ``` ### 4.3 LocalStorage-Keys ``` capakraken_theme → capakraken_theme capakraken_sidebar_collapsed → capakraken_sidebar_collapsed capakraken_prefs → capakraken_prefs capakraken_dashboard_v1 → capakraken_dashboard_v1 capakraken_pwa_dismiss → capakraken_pwa_dismiss capakraken-chat-messages → capakraken-chat-messages ``` ### 4.4 Email-Defaults (3 Dateien) ``` noreply@capakraken.app → noreply@capakraken.app ``` --- ## Phase 5: Dokumentation (MITTEL) ### 5.1 Kern-Dokumente ```bash # Globaler Replace in allen .md Dateien find . -name "*.md" -not -path "*/node_modules/*" \ -exec sed -i 's/capakraken/capakraken/g; s/CapaKraken/CapaKraken/g; s/plANARCHY/CapaKraken/g' {} + ``` ### 5.2 CLAUDE.md aktualisieren - Projektname, Monorepo-Struktur, Package-Referenzen ### 5.3 Code-Kommentare ```bash grep -rn "capakraken" --include="*.ts" --include="*.tsx" . \ | grep -v node_modules | grep -v .next | grep "\/\/" # Manuell pruefen und aendern ``` --- ## Phase 6: Verzeichnis-Umbenennung (OPTIONAL) ### Nicht umbenennen (zu riskant): - `packages/` Verzeichnisnamen bleiben (`packages/api/`, nicht `packages/capakraken-api/`) - Git-Remote URL aendern ist ein separater Schritt beim Hoster ### Umbenennen (sicher): - Docker-Container-Namen aendern sich automatisch durch docker-compose Aenderungen --- ## Phase 7: Verifikation ```bash # 1. Node Modules neu installieren rm -rf node_modules apps/web/node_modules packages/*/node_modules pnpm install # 2. Prisma regenerieren pnpm db:generate # 3. TypeScript pruefen pnpm --filter @capakraken/web exec tsc --noEmit # 4. Unit Tests pnpm test:unit # 5. Build pnpm --filter @capakraken/web exec next build # 6. E2E (nach Seed mit neuen Emails) pnpm --filter @capakraken/db db:seed pnpm test:e2e ``` --- ## Risiken | Risiko | Mitigation | |--------|-----------| | **pnpm Workspace-Aufloesung bricht** | Nach Rename sofort `pnpm install` ausfuehren | | **Import-Pfade nicht komplett ersetzt** | `grep -rn "@capakraken" --include="*.ts"` als Kontrolle | | **Docker Volumes mit alten Namen** | Alte Volumes manuell loeschen: `docker volume rm capakraken_pgdata` | | **Bestehende User-Sessions invalide** | Alle User muessen sich neu einloggen (NEXTAUTH_SECRET bleibt gleich) | | **LocalStorage-Keys veraltet** | Alte Keys werden ignoriert, neue Defaults greifen | | **Git-History referenziert alten Namen** | Kein Problem — History bleibt unveraendert | --- ## Empfohlene Reihenfolge 1. **Backup erstellen** (DB + Git Tag) 2. **Phase 1** durchfuehren (Package-Namen + Imports) 3. `pnpm install` → pruefen ob Workspace funktioniert 4. **Phase 2** (Docker + DB Migration) 5. **Phase 3** (CI/CD + Scripts) 6. **Phase 4** (Tests + Emails) 7. `pnpm test:unit` → alle Tests gruen? 8. **Phase 5** (Dokumentation) 9. **Phase 7** (Vollstaendige Verifikation) 10. **Commit + PR** als einzelner "chore: rename capakraken → capakraken" Commit