Update auf Postgres18

This commit is contained in:
Tom 2026-10-28 10:02:54 +01:00
parent 603ecefc4a
commit 0330c9fa1e
5 changed files with 15 additions and 7 deletions

View file

@ -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. Voraussetzungen: Docker, [uv](https://docs.astral.sh/uv/), git.
```bash ```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 cp .env.example .env
uv sync uv sync
uv run aiw gen-key # Ausgabe als AIW_SECRET_KEY in .env eintragen uv run aiw gen-key # Ausgabe als AIW_SECRET_KEY in .env eintragen

View file

@ -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 up -d # starten
# docker compose down # anhalten, Daten bleiben # docker compose down # anhalten, Daten bleiben
@ -7,12 +7,17 @@
# Datenbanken: aiw (für Web und Worker) und die Verwaltungsdatenbank postgres # 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). # (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. # 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 name: ai-workspace
services: services:
postgres: postgres:
image: postgres:17.6 image: postgres:18.6
environment: environment:
POSTGRES_USER: aiw POSTGRES_USER: aiw
POSTGRES_PASSWORD: aiw POSTGRES_PASSWORD: aiw
@ -20,7 +25,7 @@ services:
ports: ports:
- "127.0.0.1:55433:5432" - "127.0.0.1:55433:5432"
volumes: volumes:
- aiw-postgres:/var/lib/postgresql/data - aiw-postgres18:/var/lib/postgresql
healthcheck: healthcheck:
test: ["CMD-SHELL", "pg_isready -U aiw -d aiw"] test: ["CMD-SHELL", "pg_isready -U aiw -d aiw"]
interval: 2s interval: 2s
@ -49,5 +54,5 @@ services:
restart: unless-stopped restart: unless-stopped
volumes: volumes:
aiw-postgres: aiw-postgres18:
aiw-oracle: aiw-oracle:

View file

@ -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: `--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. 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. 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. 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. 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 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. Nach neuen Migrationen einmal `uv run aiw migrate` ausführen. Fehlt eine Migration, meldet `/ready` den Stand.
## 2. Web (Terminal 1) ## 2. Web (Terminal 1)

View file

@ -4,6 +4,7 @@ Stand: 25.10.2026. Reihenfolge so gewählt, dass spätere Schritte auf früheren
## 0. Vorbereitung ## 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). - [ ] 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. - [ ] *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)). - [ ] 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)).

View file

@ -71,7 +71,7 @@ if $RESET; then
fi fi
say "PostgreSQL-Container und -Daten löschen" say "PostgreSQL-Container und -Daten löschen"
docker compose rm -sfv postgres >/dev/null 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 if $ORACLE; then
say "Oracle-Container und -Daten löschen" say "Oracle-Container und -Daten löschen"
docker compose --profile oracle rm -sfv oracle >/dev/null docker compose --profile oracle rm -sfv oracle >/dev/null