Files
CapaKraken/docs/old-markdowns/rename-legacy-to-capakraken-plan.md
T

6.9 KiB

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)

# 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

# 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)

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)

sed -i 's/@capakraken\//@capakraken\//g' package.json

3.3 Start/Stop/Restart Scripts

sed -i 's/capakraken/capakraken/g' scripts/start.sh scripts/stop.sh scripts/restart.sh

3.4 Dependabot

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)

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

# 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

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

# 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