Aurabase-Logo
AurabasisDokumente
Dokumente›Führer›Generate TypeScript types

Generieren Sie TypeScript-Typen aus Ihrer Datenbank

Ein Befehl verwandelt Ihre Tabellen in Typen. Ihr Editor lehnt dann eine falsche Spalte oder einen falschen Wert ab, bevor Sie etwas ausführen.

4 Min. gelesen·Ebene Anfänger·Überarbeitet am 12.10.2026
Dieser englische Text wurde automatisch aus dem französischen Original generiert und wurde noch nicht überprüft.
Diese Seite wurde automatisch übersetzt. Maßgeblich ist die englische Version.
#
Generieren

1. Generieren Sie die Datei

terminalbash
npx @aurabase/gen --url https://my-app.aurabase.cloud --key "$AURA_ANON_KEY" --out src/types/database.types.ts

Das Tool liest das Schema Ihres Projekts und schreibt die Datei. Ohne --url und --key wird nach AURABASE_URL und AURABASE_ANON_KEY (auch NEXT_PUBLIC_AURABASE_URL, VITE_AURABASE_URL und AURABASE_SERVICE_ROLE_KEY) in Ihrer Umgebung und in .env, .env.local und .env.development gesucht.

Bei einem Projekt mit zwei Tabellen und zwei Funktionen antwortete es:

text
[aurabase-gen] ✓ Types écrits dans /tmp/database.types.ts (2 table(s), 2 fonction(s), 0 enum(s), 0 vue(s)).

Führen Sie es erneut aus, wenn sich das Schema ändert. Fügen Sie --schema <name> für ein anderes Schema als public und --type-name hinzu, um den Haupttyp umzubenennen.

#
Benutzen

2. Verwenden Sie es mit dem Kunden

src/lib/aurabase.tstypescript
import { createClient } from '@aurabase/aurabase-js'
import type { Database } from '../types/database.types'

export const aura = createClient<Database>(process.env.AURA_URL!, process.env.AURA_ANON_KEY!)

Der generierte Typ beschreibt jede Tabelle mit Row, Insert und Update. Für eine echte Datei lieferte der Compiler folgende Ergebnisse:

checked.tstypescript
const { data } = await aura.from('todos').select('id, title, done')
const title: string | undefined = data?.[0]?.title   // ok

const wrong: number | undefined = data?.[0]?.title   // Fehler: Zeichenfolge kann nicht einer Zahl zugeordnet werden
await aura.from('todos').insert({ title: 1 })         // Fehler: Zahl kann der Zeichenfolge nicht zugewiesen werden
await aura.from('todos').insert({ title: 'ok' })      // ok: Die anderen Spalten haben Standardwerte

In Insert ist eine Spalte mit einer Standardspalte oder einer Spalte, die NULL-Werte zulässt, optional. In Update ist jede Spalte optional.

#
Helfer

3. Zeilentypen für Ihre Komponenten

Todo.tsxtypescript
import type { Tables, TablesInsert, TablesUpdate, Enums } from '../types/database.types'

type Todo = Tables<'todos'>             // eine Zeile, wie gelesen
type NewTodo = TablesInsert<'todos'>    // was insert() akzeptiert
type TodoPatch = TablesUpdate<'todos'>  // was update() akzeptiert

Enums<'name'> gibt die Werte einer Datenbankenum an.

#
Grenzen

4. Was wird überprüft

  • Eine Tabelle, die nicht in der generierten Datei enthalten ist, wird nicht abgelehnt: aura.from('anything') wird weiterhin kompiliert und ihre Zeilen sind untypisiert.
  • Funktionen erscheinen unter Functions mit ihren Argumenten. Eine Funktion, die einen benutzerdefinierten Zeilentyp zurückgibt, wird als Json oder unknown angezeigt.
  • Die Datei spiegelt das Schema zum Zeitpunkt der Erstellung wider. Eine später hinzugefügte Spalte ist den Typen unbekannt, bis Sie das Tool erneut ausführen.
  • Verwenden Sie den öffentlichen Schlüssel zum Generieren der Typen, es sei denn, einige Tabellen sind darin verborgen. Übertragen Sie niemals einen service_role-Schlüssel.
Zuletzt aktualisiert · 12.10.2026