From 0330c9fa1e6ebf24df633cb77361b19e13c16552 Mon Sep 17 00:00:00 2001 From: Tom Date: Wed, 28 Oct 2026 10:02:54 +0100 Subject: [PATCH] Update auf Postgres18 --- README.md | 2 +- docker-compose.yml | 13 +++++++++---- docs/lokal-starten.md | 4 +++- docs/testplan.md | 1 + scripts/dev.sh | 2 +- 5 files changed, 15 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 80f7c08..e1886c3 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ Stand: **Phase 3 plus MCP-Server zentral und je Workspace, Uploads mit DuckDB-An Voraussetzungen: Docker, [uv](https://docs.astral.sh/uv/), git. ```bash -docker compose up -d # PostgreSQL 17 auf 127.0.0.1:55433 +docker compose up -d # PostgreSQL 18 auf 127.0.0.1:55433 cp .env.example .env uv sync uv run aiw gen-key # Ausgabe als AIW_SECRET_KEY in .env eintragen diff --git a/docker-compose.yml b/docker-compose.yml index a59a1cb..e955011 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,4 +1,4 @@ -# PostgreSQL zum Entwickeln und Testen (Daten im Volume aiw-postgres). +# PostgreSQL 18 zum Entwickeln und Testen (Daten im Volume aiw-postgres18). # # docker compose up -d # starten # docker compose down # anhalten, Daten bleiben @@ -7,12 +7,17 @@ # Datenbanken: aiw (für Web und Worker) und die Verwaltungsdatenbank postgres # (für die Tests; jeder Testlauf legt dort eine eigene an und räumt sie ab). # Port 55433, damit es nicht mit Hugin (55432) kollidiert. +# +# Ab PostgreSQL 18 liegen die Daten unter /var/lib/postgresql/18/docker; das Volume hängt deshalb an +# /var/lib/postgresql (nicht mehr …/data). Eine neue Hauptversion startet nicht mit den Daten der alten: +# lokal mit scripts/dev.sh --reset neu anfangen oder vorher pg_dumpall. Das frühere Volume aiw-postgres +# (PostgreSQL 17) bleibt liegen, bis man es löscht: docker volume rm ai-workspace_aiw-postgres name: ai-workspace services: postgres: - image: postgres:17.6 + image: postgres:18.6 environment: POSTGRES_USER: aiw POSTGRES_PASSWORD: aiw @@ -20,7 +25,7 @@ services: ports: - "127.0.0.1:55433:5432" volumes: - - aiw-postgres:/var/lib/postgresql/data + - aiw-postgres18:/var/lib/postgresql healthcheck: test: ["CMD-SHELL", "pg_isready -U aiw -d aiw"] interval: 2s @@ -49,5 +54,5 @@ services: restart: unless-stopped volumes: - aiw-postgres: + aiw-postgres18: aiw-oracle: diff --git a/docs/lokal-starten.md b/docs/lokal-starten.md index 3d30f32..969dd5c 100644 --- a/docs/lokal-starten.md +++ b/docs/lokal-starten.md @@ -25,7 +25,7 @@ scripts/dev.sh --reset --oracle # zusätzlich die Oracle-Daten löschen un `--reset` bringt die lokale Umgebung in den Zustand einer frischen Installation mit Demo: 1. **Prüfen:** Läuft auf dem Web-Port noch etwas (Bifröst), bricht das Skript ab. Ohne Terminal und ohne `--yes` bricht es ebenfalls ab, statt auf eine Antwort zu warten. -2. **Löschen:** PostgreSQL-Container und -Volume (`ai-workspace_aiw-postgres`), also Workspaces, Chats, Nutzer, Modelle, API-Keys, Einstellungen und die Shop-Datenbank der Demo; dazu `data/` (Uploads, Git-Cache, Demo-Repositories) und die Ablagen aus `AIW_UPLOAD_DIR` und `AIW_GIT_CACHE_DIR`, sofern sie im Projekt liegen. Oracle nur mit `--oracle`. +2. **Löschen:** PostgreSQL-Container und -Volume (`ai-workspace_aiw-postgres18`), also Workspaces, Chats, Nutzer, Modelle, API-Keys, Einstellungen und die Shop-Datenbank der Demo; dazu `data/` (Uploads, Git-Cache, Demo-Repositories) und die Ablagen aus `AIW_UPLOAD_DIR` und `AIW_GIT_CACHE_DIR`, sofern sie im Projekt liegen. Oracle nur mit `--oracle`. 3. **Aufsetzen wie `--setup`:** Container starten, Migrationen, Demo-Nutzer admin (Plattform-Admin), entwicklung, fachbereich, freigabe. 4. **Demo:** DB-Dienst PostgreSQL starten, dann `aiw demo`, also beide Demo-Workspaces samt Shop-Datenbank und registriertem PostgreSQL-Treiber. 5. **Starten:** Web und Worker wie gewohnt. @@ -43,6 +43,8 @@ cd /Users/tom/repos/dev/ai-workspace docker compose up -d # PostgreSQL auf 127.0.0.1:55433 ``` +Image und Volume stehen in `docker-compose.yml` (PostgreSQL 18.6, Volume `aiw-postgres18` an `/var/lib/postgresql`). Beim Wechsel der Hauptversion starten die alten Daten nicht mit der neuen: lokal `scripts/dev.sh --reset`, oder vorher `pg_dumpall` und danach einspielen. + Nach neuen Migrationen einmal `uv run aiw migrate` ausführen. Fehlt eine Migration, meldet `/ready` den Stand. ## 2. Web (Terminal 1) diff --git a/docs/testplan.md b/docs/testplan.md index f16d0fa..de390fa 100644 --- a/docs/testplan.md +++ b/docs/testplan.md @@ -4,6 +4,7 @@ Stand: 25.10.2026. Reihenfolge so gewählt, dass spätere Schritte auf früheren ## 0. Vorbereitung +- [ ] PostgreSQL 18: nach dem Umstieg `scripts/dev.sh --reset` → Container `postgres:18.6`, Volume `ai-workspace_aiw-postgres18`, `/ready` ok, Shop-Datenbank meldet bei *Verbindung testen* „PostgreSQL 18.6“. - [ ] Web und Worker neu starten (`scripts/dev.sh`, startet auch den DB-Dienst PostgreSQL); `uv run aiw migrate` (Stand 0028: Rückmeldungen zu Antworten; davor abgeglichene Ordner, Bereich *Repository* und Chats auf bestehenden Branches, Hugin-Anbindung mit Abgleich im Hintergrund, MCP-Verbindungen je Workspace und Datenbanken über Treiber). - [ ] *Administration → Tools:* `update_plan`, `merge_target`, `load_skill`, `read_skill_file` und `hugin_feedback` sind neu und gesperrt, bis sie eingestuft sind → *Vorschläge übernehmen*. Die Tools `db_*` gibt es nicht mehr. - [ ] Für Abschnitt 9b: Hugin läuft (`scripts/demo.sh` im Hugin-Repository, `http://127.0.0.1:8080`), Key der Integration „Softwareverteilung“ aus `.demo/keys.txt` (siehe [lokal-starten.md](lokal-starten.md#hugin-ausprobieren)). diff --git a/scripts/dev.sh b/scripts/dev.sh index 95b13e0..336bd58 100755 --- a/scripts/dev.sh +++ b/scripts/dev.sh @@ -71,7 +71,7 @@ if $RESET; then fi say "PostgreSQL-Container und -Daten löschen" docker compose rm -sfv postgres >/dev/null - docker volume rm -f ai-workspace_aiw-postgres >/dev/null + docker volume rm -f ai-workspace_aiw-postgres18 >/dev/null if $ORACLE; then say "Oracle-Container und -Daten löschen" docker compose --profile oracle rm -sfv oracle >/dev/null