KEPLIN Docs

Datenbanken verbinden

Eine Datenbank als Datenquelle der App registrieren, die Verbindung bearbeiten, umbenennen und löschen — und wo diese Verbindung danach verwendet wird.

Eine Datenquelle ist eine in einer App registrierte Datenbank: eine Verbindung mit Namen, Typ und Zugangsdaten, die allem zur Verfügung steht, was in dieser App echte Daten braucht — den SQL-Schritten der APIs, den Skripten, dem Datenmodell (und über dieses der GraphQL-API und den Bildschirmen). Die Verbindung wird einmal registriert; von da an bezieht sich die ganze App über den Namen auf sie.

In der Beispiel-App Kundenverwaltung heißt die Datenquelle crm — eine PostgreSQL-Datenbank mit den Tabellen für Konten, Kontakte und Opportunities. Sie ist es, die Sie in allen Abbildungen dieses Kapitels sehen werden.

Nota

Die Datenquellen sind pro App: Jede App hat ihre eigene Liste, und eine in einer App registrierte Verbindung erscheint nicht in den anderen. Wenn zwei Apps dieselbe Datenbank brauchen, wird die Verbindung in jeder registriert.

Wo Sie die Datenquellen finden

Es gibt zwei Eingangstüren, und Sie werden beide benutzen:

  • Das Panel Daten — in der Seitenleiste des Arbeitsbereichs der App, Tab Daten, Abschnitt Datenquellen. Das ist der Ort für den Alltag: Jede Datenquelle klappt zu einem Baum mit den Tabellen, Ansichten und der Programmierung der Datenbank auf, und das Menü jeder einzelnen gibt Zugang zu allen Aktionen.
  • Die Seite Datenquellen — die vollständige Liste der App, mit Typ und Erstellungsdatum jeder Verbindung („Datenbanken, auf die die APIs und Skripte dieser App zugreifen können.“). Hierhin zeigen auch die Abkürzungen der Plattform — zum Beispiel der Link Fügen Sie die erste hinzu, der in einem SQL-Schritt erscheint, wenn die App noch keine Datenquellen hat. Auf kleinen Bildschirmen zeigt die Navigation der App Datenquellen direkt an.

Die Seite Datenquellen der App Kundenverwaltung, mit der registrierten Verbindung „crm“
Die Seite Datenquellen der App Kundenverwaltung, mit der registrierten Verbindung „crm“

Das Panel Daten mit dem Abschnitt Datenquellen und dem Objektbaum der Datenquelle „crm“
Das Panel Daten mit dem Abschnitt Datenquellen und dem Objektbaum der Datenquelle „crm“

Eine Datenquelle anlegen

Sie brauchen die Verbindungsdaten der Datenbank: Serveradresse, Port, Name der Datenbank, Benutzer und Passwort — die genauen Felder hängen vom Typ ab (die Seite Unterstützte Typen beschreibt jeden einzeln).

Aus dem Panel Daten heraus

  1. Öffnen Sie den Tab Daten der Seitenleiste.
  2. Klicken Sie im Abschnitt Datenquellen auf den Button + (Neue Datenquelle). Es öffnet sich ein Modal — „Verbinden Sie eine Datenbank mit dieser App. Alles wird ruhend verschlüsselt.“
  3. Füllen Sie das Feld Interner Name aus und wählen Sie den Typ.
  4. Füllen Sie die Verbindungsfelder des gewählten Typs aus.
  5. Klicken Sie auf Verbindung testen und warten Sie auf „Verbindung OK.“ — die Seite Die Verbindung testen und Sicherheit erklärt, was der Test tut und wie die Fehler zu lesen sind.
  6. Klicken Sie auf Speichern. Der Baum zeigt nun die Datenquelle, und deren Bildschirm Modell öffnet sich gleich darauf — bereit, damit Sie Tabellen importieren.

Aus der Seite Datenquellen heraus

  1. Öffnen Sie die Seite Datenquellen und klicken Sie auf Datenquelle hinzufügen.
  2. Es öffnet sich die Seite Neue Datenquelle — „Erfassen Sie die Zugangsdaten und testen Sie die Verbindung, bevor Sie speichern. Alles wird ruhend verschlüsselt.“ Das Formular hat zwei Abschnitte: Identifikation (Interner Name und Typ der Datenbank) und Verbindung (Zugangsdaten und Verbindungsparameter).
  3. Füllen Sie aus, testen Sie mit Verbindung testen und klicken Sie auf Erstellen.
  4. Sie kehren zur Liste zurück, mit der Bestätigung „Datenquelle erstellt.“.

Das Formular Neue Datenquelle, ausgefüllt für die PostgreSQL-Verbindung der App Kundenverwaltung
Das Formular Neue Datenquelle, ausgefüllt für die PostgreSQL-Verbindung der App Kundenverwaltung

Dica

Der Weg über das Modal ist der kürzeste, während Sie bauen: Beim Speichern öffnet sich das Modell der Datenquelle sofort, und Sie können weitermachen, ohne den Arbeitsbereich zu verlassen.

Der interne Name ist die Identität

Das Feld Interner Name (z. B. warehouse-prod, oder crm in unserem Beispiel) ist kein dekoratives Etikett — es ist der Bezeichner, über den die APIs und die Skripte die Verbindung aufrufen:

  • In einem Python-Skript: db("crm").query("select * from contas").
  • In einem SQL-Schritt einer API: Das Feld Datenquelle des Schritts listet die registrierten Namen auf.

Deshalb:

Regel Was passiert, wenn sie verletzt wird
Eindeutig innerhalb der App „Es existiert bereits eine Datenquelle mit dem Namen … in diesem Projekt.“
Ohne Kollisionen mit einer anderen Datenquelle „Der Name … kollidiert mit der Datenquelle …“
Stabil — ändern Sie ihn nur mit Absicht Siehe „Eine Datenquelle umbenennen“ weiter unten

Die Verbindung bearbeiten

Die Datenbank hat den Server oder das Passwort gewechselt, oder Sie wollen SSL einschalten:

  1. Öffnen Sie im Panel Daten das Menü der Datenquelle und wählen Sie Verbindung bearbeiten.
  2. Das Modal öffnet sich mit allem ausgefüllt außer dem Passwort — das Feld heißt nun Passwort (leer = beibehalten). Lassen Sie es leer, um das aktuelle Passwort zu behalten; schreiben Sie hinein, um es zu ersetzen.
  3. Ändern Sie, was nötig ist, klicken Sie auf Verbindung testen, um es zu bestätigen, und danach auf Speichern. Die Bestätigung lautet „Verbindung gespeichert.“.

Das Modal Verbindung bearbeiten der Datenquelle „crm“, mit leerem Passwort
Das Modal Verbindung bearbeiten der Datenquelle „crm“, mit leerem Passwort

Nota

Auf der Seite Datenquellen öffnet ein Klick auf den Namen einer Datenquelle deren Modell — die Verbindung wird immer über das Modal Verbindung bearbeiten des Panels Daten bearbeitet.

Eine Datenquelle umbenennen

Machen Sie einen Doppelklick auf den Namen der Datenquelle im Baum des Panels Daten und schreiben Sie den neuen Namen (oder ändern Sie das Feld Interner Name unter Verbindung bearbeiten). Die bereits ins Modell importierten Tabellen folgen dem neuen Namen automatisch.

Atenção

Was beim Umbenennen nicht neu geschrieben wird: die SQL-Schritte von APIs, die die Datenquelle über den alten Namen gewählt haben, und die Aufrufe db("alter-name") in den Skripten. Sehen Sie nach dem Umbenennen diese APIs und Skripte durch — bis dahin zeigen sie auf einen Namen, den es nicht mehr gibt, und schlagen bei der Ausführung fehl.

Eine Datenquelle löschen

  1. Klicken Sie auf der Seite Datenquellen auf das Papierkorb-Symbol in der Zeile der Datenquelle — oder öffnen Sie im Panel Daten das Menü und wählen Sie Datenquelle löschen.
  2. Lesen Sie die Bestätigung aufmerksam: „Die APIs und Skripte, die diese Datenquelle nutzen, können nicht mehr ausgeführt werden. Diese Aktion ist endgültig.“ Im Baum ergänzt der Hinweis, dass auch das zugehörige Modell verschwindet.
  3. Bestätigen Sie mit Datenquelle löschen.

Was das Löschen entfernt — und was es nicht anrührt:

Verschwindet Bleibt
Die registrierte Verbindung (Name, Typ, Zugangsdaten) Die Datenbank selbst — auf dem Ursprungsserver wird nichts gelöscht
Die Tabellen dieser Datenquelle im Modell der App Die APIs und Skripte, die sie genutzt haben (sie schlagen fehl, bis sie auf eine andere Datenquelle zeigen)

Die Löschbestätigung weist darauf hin, dass APIs und Skripte nicht mehr ausgeführt werden können
Die Löschbestätigung weist darauf hin, dass APIs und Skripte nicht mehr ausgeführt werden können

Atenção

Bei einer Datenquelle vom Typ SQLite lebt die Datenbank mit der App — wenn Sie die Datenquelle löschen, verabschieden Sie sich von diesen Daten. Bei den übrigen Typen heißt löschen nur, die Verbindung zu vergessen.

Wo die Verbindung verwendet wird

Die Datenquelle zu registrieren ist der erste Schritt; der Wert liegt in dem, was sie freischaltet:

  • Der Objektbaum — klappen Sie die Datenquelle im Panel Daten auf, um Tabellen, Ansichten und Programmierung (Funktionen, Prozeduren und Trigger) zu sehen. Jede Tabelle hat Daten anzeigen (öffnet die Konsole mit einem fertigen Select) und Ins Modell importieren.

  • Das Datenmodell — die importierten Tabellen werden zu Entitäten des Modells, mit Beziehungen und Anzeigenamen. Es ist das Modell, das die GraphQL-API der App und die Blöcke Tabelle der APIs speist. Das Kapitel zum Datenmodell behandelt das ausführlich.

  • Die APIs — wählen Sie in einem SQL-Schritt die Datenbank im Feld Datenquelle und schreiben Sie die SQL-Query. Die Argumente der API kommen als :nomeDoArg herein und das Ergebnis des vorherigen Schritts als :prev — „Werte werden immer parametrisiert übergeben — nie verkettet.“ Es gibt einen Schalter Nur die erste Zeile zurückgeben für Abfragen einzelner Datensätze.

  • Die Skripte — in Python importieren Sie den Zugriff und fragen über den Namen ab:

    from api_manager import db
    
    def main(input):
        contas = db("crm").query(
            "select id, nome from contas where cidade = $1", ["Lisboa"]
        )
        return {"total": len(contas)}
    

    Die Platzhalter für Parameter ($1, ?, :1, …) hängen von der Engine ab — die Tabelle steht auf der Seite Unterstützte Typen.

In einem SQL-Schritt einer API wählt das Feld Datenquelle die Datenbank
In einem SQL-Schritt einer API wählt das Feld Datenquelle die Datenbank

Warum sehe ich nicht…?

  • …den Button Datenquelle hinzufügen? Datenquellen anzulegen, zu bearbeiten und zu löschen ist denen vorbehalten, die in der App ein Administratorprofil haben. Mit einem Developer-Profil sehen Sie die Liste ein und nutzen die Datenquellen, rühren aber die Verbindung nicht an.
  • …Datenquellen im SQL-Schritt meiner API? Die App hat noch keine — der Schritt zeigt „Diese App hat keine Datenquellen.“ mit dem Link Fügen Sie die erste hinzu.
  • …Tabellen im Block Tabelle der API? Der Block Tabelle liest aus dem Modell, nicht direkt aus der Datenquelle: „Importieren Sie zuerst Tabellen im Tab ‚Modell‘ einer Datenquelle.“