Setup
Repository forken, CLIs installieren und Datenbank starten.
Repository forken, CLIs installieren und Datenbank starten.
Richten wir deine Umgebung ein. Du arbeitest in deinem eigenen Fork des Workshop-Repositorys. So kannst du deine Kontrakte nach GitHub pushen und in Teil C per CI/CD testen.
Du brauchst:
xcode-select --install aus.Installiere uv:
curl -LsSf https://astral.sh/uv/install.sh | shdownloading uv 0.12.19
installing to ~/.local/bin
uv
uvx
everything's installed!Prüfe in einem neuen Terminal:
git --version
docker compose version
uv --versiongit version 2.54.0
Docker Compose version v5.1.4
uv 0.12.19Deine Versionsnummern können abweichen. Schlägt docker compose version fehl, starte Docker Desktop.
Öffne github.com/datacontract/learn.datacontract.com und klicke auf Fork, dann auf Create fork.
Deine Kopie liegt unter github.com/<dein-username>/learn.datacontract.com.
Mit der GitHub CLI forkst und klonst du in einem Schritt (dann überspringe den nächsten Schritt):
gh repo fork datacontract/learn.datacontract.com --clone✓ Created fork you/learn.datacontract.com
Cloning into 'learn.datacontract.com'...
✓ Cloned forkKlone deinen Fork (ersetze <dein-username>) und wechsle in den Ordner:
git clone https://github.com/<dein-username>/learn.datacontract.com.git
cd learn.datacontract.comCloning into 'learn.datacontract.com'...
remote: Enumerating objects: 512, done.
Receiving objects: 100% (512/512), done.
Resolving deltas: 100% (231/231), done.Führe alle Befehle in diesem Tutorial in diesem Ordner aus, dem Root des Repositorys.
Das Installationsskript installiert mit uv die Data Contract CLI (datacontract), die Data Product CLI (dataproduct) und die Entropy Data CLI (entropy-data, nur für Teil D). Außerdem lädt es das PostgreSQL-Image vorab.
scripts/install.shResolved 182 packages in 2.41s
…
Installed 1 executable: datacontract
…
Installed 1 executable: dataproduct
…
Installed 1 executable: entropy-data
1.2.2
0.2.0
…
Status: Downloaded newer image for postgres:17
docker.io/library/postgres:17Das dauert ein paar Minuten: Die Data Contract CLI bringt Treiber für viele Datenbanken mit.
Öffne ein neues Terminal (damit dein PATH aktuell ist), wechsle in den Root des Repositorys und führe aus:
datacontract --version
dataproduct --version1.2.2
0.2.0command not found? Führe uv tool update-shell aus und öffne ein neues Terminal.
Die docker-compose.yml startet PostgreSQL 17 auf Port 5433 mit E-Commerce-Beispieldaten:
docker compose up -d Network learndatacontractcom_default Creating
Network learndatacontractcom_default Created
Container odcs-odps-workshop-postgres Creating
Container odcs-odps-workshop-postgres Created
Container odcs-odps-workshop-postgres Starting
Container odcs-odps-workshop-postgres StartedTeste mit einer kurzen Abfrage:
docker compose exec postgres psql -U workshop -d workshop -c "SELECT COUNT(*) FROM orders_v1.orders;" count
-------
5000
(1 row)Port belegt? Beende, was auf Port 5433 läuft, und versuch es nochmal.
Die Datenbank hat zwei Schemas, orders_v1 und orders_v2, jeweils mit den Tabellen orders und line_items.
Alles zurücksetzen: erst docker compose down, dann docker compose up -d.
Öffne die .env im Root des Repositorys. Sie enthält die Zugangsdaten zur Datenbank:
DATACONTRACT_POSTGRES_USERNAME=workshop
DATACONTRACT_POSTGRES_PASSWORD=workshopBeide CLIs lesen die .env automatisch, wenn du sie im Root des Repositorys ausführst. Du musst nichts konfigurieren.
Öffne den Ordner des Repositorys in VS Code:
code .Installiere die YAML-Erweiterung von Red Hat (VS Code schlägt sie beim Öffnen des Ordners vor).
Das Repository bringt die offiziellen Schemas in schemas/ mit und verknüpft sie in .vscode/settings.json. So bekommst du Autovervollständigung und Validierung für alle *.odcs.yaml- und *.odps.yaml-Dateien.
code: command not found? Öffne den Ordner über File → Open Folder….
Alles bereit. Zeit für deinen ersten Datenkontrakt!