Query Runner API
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 wenntrue, sonst Fehler bei existierender Datenbank
Erstellt eine neue Datenbank.
dropDatabase(database: string, ifExist?: boolean): Promise<void>
-
database- Datenbankname -
ifExist- Überspringt das Löschen wenntrue, 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 wenntrue, 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 wenntrue, sonst Fehler bei nicht gefundenem Schema -
isCascade- Beitruewerden 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 wenntrue, 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 wenntrue, 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 TabellenspaltenobjektnewColumn- 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 vonupQueriesunddownQueriesSQL-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.