Lokale Entwicklung
Einrichtung der lokalen Entwicklungsumgebung mit PostgreSQL und Frontend.
Lokale Entwicklung
Die Entwicklungsumgebung im Projektverzeichnis starten:
bash child/dev.shVoraussetzungen: Goat CLI, qtc, Docker, Python 3 und Projektkonfiguration. Ports kommen aus GOAT_DEV_APP_PORT und GOAT_DB_MAIN_PORT in .env.
Der Host-Supervisor generiert in einem neuen Goat-Prozess und startet herd/dev.goat: PostgreSQL, Backend und Angular-Watcher für Grundlage und child. Er überwacht Modell, Generatorvorlagen, child-Backend und statische Dateien. Bei Änderungen beendet er die Prozesse vor der erneuten Generierung und startet sie anschließend neu. Neue Prozesse vermeiden das bereits initialisierte Modell einer laufenden CLI-Sitzung.
Datenbank und Fixtures
Vorhandene PostgreSQL-Daten bleiben erhalten. Beim Start laufen zuerst Grundlage-Migrationen, danach child-Migrationen; db:clean wird nie automatisch ausgeführt. Fixtures und pgAdmin werden ausdrücklich gestartet:
goat run:script --path=herd/fixture.goat
goat run:script --path=@goatcms/herd/db/admin.goatDie Grundlage läuft unter /app/, die separate child-Anwendung unter /child/. Angular-Watcher bauen die jeweiligen Workspaces; gemeinsame Bibliotheken stammen aus den generierten Quellen.
Build und Tests
bash child/build.sh
goat run:script --path=herd/test.goat
GOWORK=off go test ./...
(cd goatapp && GOWORK=off go test ./...)Der Build generiert Quellen, baut beide Frontends und kompiliert .tmp/bin/goatcms. Statische raw-Dateien werden bei der Kompilierung eingebettet. Auch das Dockerfile baut beide Frontends und verpackt ihre Ergebnisse im Produktionsimage.
Integrationstests benötigen GOAT_TEST_DSN für eine Testdatenbank mit temporären Schemas. GOAT_TEST_LEGACY_SCHEMA verweist für Upgrade-Tests auf einen gespeicherten SQL-Snapshot vor dem Upgrade. Ohne diese Eingaben werden die Datenbanktests ausdrücklich übersprungen.