Zum Hauptinhalt springen

Query Runner API

Inoffizielle Beta-Übersetzung

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

Um die API für Schemaänderungen zu nutzen, verwenden Sie QueryRunner.

import {
MigrationInterface,
QueryRunner,
Table,
TableIndex,
TableColumn,
TableForeignKey,
} from "typeorm"

export class QuestionRefactoringTIMESTAMP implements MigrationInterface {
async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.createTable(
new Table({
name: "question",
columns: [
{
name: "id",
type: "int",
isPrimary: true,
},
{
name: "name",
type: "varchar",
},
],
}),
true,
)

await queryRunner.createIndex(
"question",
new TableIndex({
name: "IDX_QUESTION_NAME",
columnNames: ["name"],
}),
)

await queryRunner.createTable(
new Table({
name: "answer",
columns: [
{
name: "id",
type: "int",
isPrimary: true,
},
{
name: "name",
type: "varchar",
},
{
name: "created_at",
type: "timestamp",
default: "now()",
},
],
}),
true,
)

await queryRunner.addColumn(
"answer",
new TableColumn({
name: "questionId",
type: "int",
}),
)

await queryRunner.createForeignKey(
"answer",
new TableForeignKey({
columnNames: ["questionId"],
referencedColumnNames: ["id"],
referencedTableName: "question",
onDelete: "CASCADE",
}),
)
}

async down(queryRunner: QueryRunner): Promise<void> {
const table = await queryRunner.getTable("answer")
const foreignKey = table.foreignKeys.find(
(fk) => fk.columnNames.indexOf("questionId") !== -1,
)
await queryRunner.dropForeignKey("answer", foreignKey)
await queryRunner.dropColumn("answer", "questionId")
await queryRunner.dropTable("answer")
await queryRunner.dropIndex("question", "IDX_QUESTION_NAME")
await queryRunner.dropTable("question")
}
}

getDatabases(): Promise<string[]>

Gibt alle verfügbaren Datenbanknamen zurück, einschließlich Systemdatenbanken.


getSchemas(database?: string): Promise<string[]>
  • database - Wenn der Datenbank-Parameter angegeben ist, werden die Schemas dieser Datenbank zurückgegeben

Gibt alle verfügbaren Schema-Namen einschließlich Systemschemas zurück. Nur für SQLServer und Postgres relevant.


getTable(tableName: string): Promise<Table|undefined>
  • tableName - Name der zu ladenden Tabelle

Lädt eine Tabelle anhand ihres Namens aus der Datenbank.


getTables(tableNames: string[]): Promise<Table[]>
  • tableNames - Namen der zu ladenden Tabellen

Lädt Tabellen anhand ihrer Namen aus der Datenbank.


hasDatabase(database: string): Promise<boolean>
  • database - Name der zu prüfenden Datenbank

Prüft, ob eine Datenbank mit dem angegebenen Namen existiert.


hasSchema(schema: string): Promise<boolean>
  • schema - Name des zu prüfenden Schemas

Prüft, ob ein Schema mit dem angegebenen Namen existiert. Wird nur für SqlServer und Postgres verwendet.


hasTable(table: Table|string): Promise<boolean>
  • table - Table-Objekt oder Tabellenname

Prüft, ob die Tabelle existiert.


hasColumn(table: Table|string, columnName: string): Promise<boolean>
  • table - Table-Objekt oder Tabellenname

  • columnName - Name der zu prüfenden Spalte

Prüft, ob die Spalte in der Tabelle existiert.


createDatabase(database: string, ifNotExist?: boolean): Promise<void>
  • database - Datenbankname

  • ifNotExist - Überspringt die Erstellung wenn true, sonst Fehler bei existierender Datenbank

Erstellt eine neue Datenbank.


dropDatabase(database: string, ifExist?: boolean): Promise<void>
  • database - Datenbankname

  • ifExist - Überspringt das Löschen wenn true, sonst Fehler bei nicht gefundener Datenbank

Löscht eine Datenbank.


createSchema(schemaPath: string, ifNotExist?: boolean): Promise<void>
  • schemaPath - Schemaname. Bei SQL Server kann ein Schema-Pfad (z.B. 'dbName.schemaName') übergeben werden. Bei Angabe wird das Schema in der spezifizierten Datenbank erstellt

  • ifNotExist - Überspringt die Erstellung wenn true, sonst Fehler bei existierendem Schema

Erstellt ein neues Tabellenschema.


dropSchema(schemaPath: string, ifExist?: boolean, isCascade?: boolean): Promise<void>
  • schemaPath - Schemaname. Bei SQL Server kann ein Schema-Pfad (z.B. 'dbName.schemaName') übergeben werden. Bei Angabe wird das Schema in der spezifizierten Datenbank gelöscht

  • ifExist - Überspringt das Löschen wenn true, sonst Fehler bei nicht gefundenem Schema

  • isCascade - Bei true werden automatisch enthaltene Objekte (Tabellen, Funktionen etc.) mitgelöscht. Nur für Postgres

Löscht ein Tabellenschema.


createTable(table: Table, ifNotExist?: boolean, createForeignKeys?: boolean, createIndices?: boolean): Promise<void>
  • table - Tabellenobjekt

  • ifNotExist - Überspringt die Erstellung wenn true, sonst Fehler bei existierender Tabelle. Standard: false

  • createForeignKeys - Erstellt Fremdschlüssel bei Tabellenerstellung. Standard: true

  • createIndices - Erstellt Indizes bei Tabellenerstellung. Standard: true

Erstellt eine neue Tabelle.


dropTable(table: Table|string, ifExist?: boolean, dropForeignKeys?: boolean, dropIndices?: boolean): Promise<void>
  • table - Zu löschendes Tabellenobjekt oder Tabellenname

  • ifExist - Überspringt das Löschen wenn true, sonst Fehler bei nicht existierender Tabelle

  • dropForeignKeys - Löscht Fremdschlüssel beim Tabellenlöschen. Standard: true

  • dropIndices - Löscht Indizes beim Tabellenlöschen. Standard: true

Löscht eine Tabelle.


renameTable(oldTableOrName: Table|string, newTableName: string): Promise<void>
  • oldTableOrName - Umzubenennendes Tabellenobjekt oder alter Tabellenname

  • newTableName - Neuer Tabellenname

Benennt eine Tabelle um.


addColumn(table: Table|string, column: TableColumn): Promise<void>
  • table - Table-Objekt oder Tabellenname

  • column - Neue Spalte

Fügt neue Spalten hinzu.


addColumns(table: Table|string, columns: TableColumn[]): Promise<void>
  • table - Table-Objekt oder Tabellenname

  • columns - Neue Spalten

Fügt neue Spalten hinzu.


renameColumn(table: Table|string, oldColumnOrName: TableColumn|string, newColumnOrName: TableColumn|string): Promise<void>
  • table - Table-Objekt oder Tabellenname

  • oldColumnOrName - Alte Spalte (Tabellenspaltenobjekt oder Spaltenname)

  • newColumnOrName - Neue Spalte (Tabellenspaltenobjekt oder Spaltenname)

Benennt eine Spalte um.


changeColumn(table: Table|string, oldColumn: TableColumn|string, newColumn: TableColumn): Promise<void>
  • table - Table-Objekt oder Tabellenname

  • oldColumn - Alte Spalte (Tabellenspaltenobjekt oder Spaltenname)

  • newColumn - Neue Spalte (Tabellenspaltenobjekt)

Ändert eine Spalte in der Tabelle.


changeColumns(table: Table|string, changedColumns: { oldColumn: TableColumn, newColumn: TableColumn }[]): Promise<void>
  • table - Table-Objekt oder Tabellenname

  • changedColumns - Array geänderter Spalten:

    • oldColumn - Altes Tabellenspaltenobjekt
    • newColumn - Neues Tabellenspaltenobjekt

Ändert Spalten in der Tabelle.


dropColumn(table: Table|string, column: TableColumn|string): Promise<void>
  • table - Table-Objekt oder Tabellenname

  • column - TableColumn-Objekt oder Spaltenname, der gelöscht werden soll

Löscht eine Spalte in der Tabelle.


dropColumns(table: Table|string, columns: TableColumn[]|string[]): Promise<void>
  • table - Table-Objekt oder Tabellenname

  • columns - Array von TableColumn-Objekten oder Spaltennamen, die gelöscht werden sollen

Löscht Spalten in der Tabelle.


createPrimaryKey(table: Table|string, columnNames: string[]): Promise<void>
  • table - Table-Objekt oder Tabellenname

  • columnNames - Array von Spaltennamen, die primär sein werden

Erstellt einen neuen Primärschlüssel.


updatePrimaryKeys(table: Table|string, columns: TableColumn[]): Promise<void>
  • table - Table-Objekt oder Tabellenname

  • columns - Array von TableColumn-Objekten, die aktualisiert werden

Aktualisiert zusammengesetzte Primärschlüssel.


dropPrimaryKey(table: Table|string): Promise<void>
  • table - Table-Objekt oder Tabellenname

Löscht einen Primärschlüssel.


createUniqueConstraint(table: Table|string, uniqueConstraint: TableUnique): Promise<void>
  • table - Table-Objekt oder Tabellenname

  • uniqueConstraint - TableUnique-Objekt, das erstellt werden soll

Erstellt eine neue Unique-Constraint.

Hinweis: Funktioniert nicht für MySQL, da MySQL Unique-Constraints als Unique-Indizes speichert. Verwenden Sie stattdessen die Methode createIndex().


createUniqueConstraints(table: Table|string, uniqueConstraints: TableUnique[]): Promise<void>
  • table - Table-Objekt oder Tabellenname

  • uniqueConstraints - Array von TableUnique-Objekten, die erstellt werden sollen

Erstellt neue Unique-Constraints.

Hinweis: Funktioniert nicht für MySQL, da MySQL Unique-Constraints als Unique-Indizes speichert. Verwenden Sie stattdessen die Methode createIndices().


dropUniqueConstraint(table: Table|string, uniqueOrName: TableUnique|string): Promise<void>
  • table - Table-Objekt oder Tabellenname

  • uniqueOrName - TableUnique-Objekt oder Name der Unique-Constraint, der gelöscht werden soll

Löscht eine Unique-Constraint.

Hinweis: Funktioniert nicht für MySQL, da MySQL Unique-Constraints als Unique-Indizes speichert. Verwenden Sie stattdessen die Methode dropIndex().


dropUniqueConstraints(table: Table|string, uniqueConstraints: TableUnique[]): Promise<void>
  • table - Table-Objekt oder Tabellenname

  • uniqueConstraints - Array von TableUnique-Objekten, die gelöscht werden sollen

Löscht Unique-Constraints.

Hinweis: Funktioniert nicht für MySQL, da MySQL Unique-Constraints als Unique-Indizes speichert. Verwenden Sie stattdessen die Methode dropIndices().


createCheckConstraint(table: Table|string, checkConstraint: TableCheck): Promise<void>
  • table - Table-Objekt oder Tabellenname

  • checkConstraint - TableCheck-Objekt

Erstellt eine neue Check-Constraint.

Hinweis: MySQL unterstützt keine Check-Constraints.


createCheckConstraints(table: Table|string, checkConstraints: TableCheck[]): Promise<void>
  • table - Table-Objekt oder Tabellenname

  • checkConstraints - Array von TableCheck-Objekten

Erstellt eine neue Check-Constraint.

Hinweis: MySQL unterstützt keine Check-Constraints.


dropCheckConstraint(table: Table|string, checkOrName: TableCheck|string): Promise<void>
  • table - Table-Objekt oder Tabellenname

  • checkOrName - TableCheck-Objekt oder Name der Check-Constraint

Löscht einen Check-Constraint.

Hinweis: MySQL unterstützt keine Check-Constraints.


dropCheckConstraints(table: Table|string, checkConstraints: TableCheck[]): Promise<void>
  • table - Table-Objekt oder Tabellenname

  • checkConstraints - Array von TableCheck-Objekten

Löscht mehrere Check-Constraints.

Hinweis: MySQL unterstützt keine Check-Constraints.


createForeignKey(table: Table|string, foreignKey: TableForeignKey): Promise<void>
  • table - Table-Objekt oder Tabellenname

  • foreignKey - TableForeignKey-Objekt

Erstellt einen neuen Fremdschlüssel.


createForeignKeys(table: Table|string, foreignKeys: TableForeignKey[]): Promise<void>
  • table - Table-Objekt oder Tabellenname

  • foreignKeys - Array von TableForeignKey-Objekten

Erstellt mehrere neue Fremdschlüssel.


dropForeignKey(table: Table|string, foreignKeyOrName: TableForeignKey|string): Promise<void>
  • table - Table-Objekt oder Tabellenname

  • foreignKeyOrName - TableForeignKey-Objekt oder Fremdschlüsselname

Löscht einen Fremdschlüssel.


dropForeignKeys(table: Table|string, foreignKeys: TableForeignKey[]): Promise<void>
  • table - Table-Objekt oder Tabellenname

  • foreignKeys - Array von TableForeignKey-Objekten

Löscht mehrere Fremdschlüssel.


createIndex(table: Table|string, index: TableIndex): Promise<void>
  • table - Table-Objekt oder Tabellenname

  • index - TableIndex-Objekt

Erstellt einen neuen Index.


createIndices(table: Table|string, indices: TableIndex[]): Promise<void>
  • table - Table-Objekt oder Tabellenname

  • indices - Array von TableIndex-Objekten

Erstellt mehrere neue Indizes.


dropIndex(table: Table|string, index: TableIndex|string): Promise<void>
  • table - Table-Objekt oder Tabellenname

  • index - TableIndex-Objekt oder Indexname

Löscht einen Index.


dropIndices(table: Table|string, indices: TableIndex[]): Promise<void>
  • table - Table-Objekt oder Tabellenname

  • indices - Array von TableIndex-Objekten

Löscht mehrere Indizes.


clearTable(tableName: string): Promise<void>
  • tableName - Tabellenname

Löscht alle Inhalte der Tabelle.

Hinweis: Dieser Vorgang verwendet die SQL-TRUNCATE-Abfrage, die in Transaktionen nicht rückgängig gemacht werden kann.


enableSqlMemory(): void

Aktiviert einen speziellen Query-Runner-Modus, in dem SQL-Abfragen nicht ausgeführt, sondern in einer speziellen Variable innerhalb des Query Runners gespeichert werden. Die gespeicherten SQL-Befehle können mit der Methode getMemorySql() abgerufen werden.


disableSqlMemory(): void

Deaktiviert den speziellen Query-Runner-Modus, in dem SQL-Abfragen nicht ausgeführt werden. Zuvor gespeicherte SQL-Befehle werden verworfen.


clearSqlMemory(): void

Verwirft alle gespeicherten SQL-Anweisungen.


getMemorySql(): SqlInMemory
  • Gibt ein SqlInMemory-Objekt mit einem Array von upQueries und downQueries SQL-Anweisungen zurück

Ruft den im Speicher gespeicherten SQL-Code ab. Parameter im SQL wurden bereits ersetzt.


executeMemoryUpSql(): Promise<void>

Führt die gespeicherten "up"-SQL-Abfragen aus.


executeMemoryDownSql(): Promise<void>

Führt die gespeicherten "down"-SQL-Abfragen aus.