Zum Hauptinhalt springen

Datenquellen-Optionen

Inoffizielle Beta-Übersetzung

Diese Seite wurde von PageTurner AI übersetzt (Beta). Nicht offiziell vom Projekt unterstützt. Fehler gefunden? Problem melden →

Was sind DataSourceOptions?

DataSourceOptions ist eine Konfiguration für die Datenquelle, die Sie beim Erstellen einer neuen DataSource-Instanz übergeben. Verschiedene RDBMS haben ihre eigenen spezifischen Optionen.

Allgemeine Datenquellen-Optionen

  • type - RDBMS-Typ. Muss angegeben werden, welche Datenbank-Engine verwendet wird. Mögliche Werte: "mysql", "postgres", "cockroachdb", "sap", "spanner", "mariadb", "sqlite", "cordova", "react-native", "nativescript", "sqljs", "oracle", "mssql", "mongodb", "aurora-mysql", "aurora-postgres", "expo", "better-sqlite3", "capacitor". Diese Option ist erforderlich.

  • extra - Zusätzliche Optionen für den zugrundeliegenden Treiber. Verwende diese, um zusätzliche Einstellungen an den Datenbanktreiber zu übergeben.

  • entities - Entitäten oder Entity-Schemas, die für diese Datenquelle geladen und verwendet werden sollen. Akzeptiert Entitätsklassen, Entity-Schema-Klassen und Verzeichnispfade zum Laden. Verzeichnisse unterstützen Glob-Muster. Beispiel: entities: [Post, Category, "entities/*.js", "modules/**/entities/*.js"]. Mehr zu Entitäten. Mehr zu Entity-Schemas.

  • subscribers - Subscriber, die für diese Datenquelle geladen und verwendet werden sollen. Akzeptiert sowohl Entitätsklassen als auch Verzeichnisse zum Laden. Verzeichnisse unterstützen Glob-Muster. Beispiel: subscribers: [PostSubscriber, AppSubscriber, "subscribers/*.js", "modules/**/subscribers/*.js"]. Mehr zu Subscribers.

  • logging - Gibt an, ob Logging aktiviert ist. Bei true werden Query- und Fehler-Logging aktiviert. Es können auch spezifische Logging-Typen aktiviert werden, z.B. ["query", "error", "schema"]. Mehr zu Logging.

  • logger - Zu verwendender Logger. Mögliche Werte: "advanced-console", "formatted-console", "simple-console" und "file". Standard ist "advanced-console". Es kann auch eine Logger-Klasse implementiert über die Logger-Schnittstelle verwendet werden. Mehr zu Logging.

  • maxQueryExecutionTime - Wenn die Abfrageausführungszeit diesen maximalen Wert (in Millisekunden) überschreitet, protokolliert der Logger diese Abfrage.

  • poolSize - Konfiguriert die maximale Anzahl aktiver Verbindungen im Verbindungspool.

  • namingStrategy - Benennungsstrategie für Tabellen- und Spaltennamen in der Datenbank.

  • entityPrefix - Fügt allen Tabellen (oder Collections) dieser Datenquelle den angegebenen String als Präfix hinzu.

  • entitySkipConstructor - Gibt an, ob TypeORM Konstruktoren beim Deserialisieren von Entitäten aus der Datenbank überspringen soll. Hinweis: Wenn der Konstruktor nicht aufgerufen wird, funktionieren private Eigenschaften und Standardwerte nicht wie erwartet.

  • dropSchema - Löscht das Schema bei jeder Initialisierung der Datenquelle. Vorsicht: Nicht in der Produktion verwenden - sonst gehen alle Produktionsdaten verloren. Diese Option ist für Debugging und Entwicklung nützlich.

  • synchronize - Gibt an, ob das Datenbankschema bei jedem Anwendungsstart automatisch erstellt werden soll. Vorsicht: Nicht in der Produktion verwenden - sonst können Produktionsdaten verloren gehen. Diese Option ist für Debugging und Entwicklung nützlich. Alternativ kann die CLI mit dem Befehl schema:sync verwendet werden. Hinweis: Für MongoDB wird kein Schema erstellt (schemalose Datenbank), stattdessen erfolgt die Synchronisierung nur durch Index-Erstellung.

  • migrations - Migrationen, die für diese Datenquelle geladen und verwendet werden sollen.

  • migrationsRun - Gibt an, ob Migrationen bei jedem Anwendungsstart automatisch ausgeführt werden sollen.

  • migrationsTableName - Name der Tabelle in der Datenbank, die Informationen über ausgeführte Migrationen enthält.

  • migrationsTransactionMode - Steuert den Transaktionsmodus beim Ausführen von Migrations.

  • metadataTableName - Name der Tabelle in der Datenbank, die Metadaten über Tabellen enthalten soll. Standardmäßig heißt diese Tabelle "typeorm_metadata".

  • cache - Aktiviert das Caching von Entity-Ergebnissen. Hier können auch der Cache-Typ und weitere Cache-Optionen konfiguriert werden. Weitere Informationen zum Caching hier.

  • isolateWhereStatements - Aktiviert die Isolation von WHERE-Anweisungen, indem jede WHERE-Klausel automatisch in Klammern gesetzt wird. Beispiel: .where("user.firstName = :search OR user.lastName = :search") wird zu WHERE (user.firstName = ? OR user.lastName = ?) anstatt WHERE user.firstName = ? OR user.lastName = ?.

  • invalidWhereValuesBehavior - Steuert die Behandlung von null- und undefined-Werten in WHERE-Bedingungen für alle TypeORM-Operationen (Find-Operationen, QueryBuilder, Repository-Methoden).

    • Verhalten für null:
      • 'ignore' (Standard) - überspringt null-Eigenschaften
      • 'sql-null' - transformiert null in SQL NULL
      • 'throw' - wirft einen Fehler
    • Verhalten für undefined:
      • 'ignore' (Standard) - überspringt undefined-Eigenschaften
      • 'throw' - wirft einen Fehler

    Beispiel: invalidWhereValuesBehavior: { null: 'sql-null', undefined: 'throw' }.

    Weitere Informationen zur Behandlung von Null und Undefined.

Beispiel für Data-Source-Optionen

Hier ist ein kleines Beispiel für Data-Source-Optionen für MySQL:

{
host: "localhost",
port: 3306,
username: "test",
password: "test",
database: "test",
logging: true,
synchronize: true,
entities: [__dirname + "/entities/**/*{.js,.ts}"],
subscribers: [__dirname + "/subscribers/**/*{.js,.ts}"],
entitySchemas: [__dirname + "/schemas/**/*.json"],
migrations: [__dirname + "/migrations/**/*{.js,.ts}"]
}