This is a temporary class used to progressively migrate the AbstractQueryInterface class to TypeScript by slowly moving its functions here. Always use AbstractQueryInterface instead.

Type Parameters

Hierarchy (View Summary)

Constructors

Properties

dialect: Dialect

Accessors

Methods

  • Add a constraint to a table

    Available constraints:

    • UNIQUE
    • DEFAULT (MSSQL only)
    • CHECK (Not supported by MySQL)
    • FOREIGN KEY
    • PRIMARY KEY

    Parameters

    Returns Promise<void>

    queryInterface.addConstraint('Users', {
    fields: ['email'],
    type: 'UNIQUE',
    name: 'custom_unique_constraint_name'
    });
    queryInterface.addConstraint('Users', {
    fields: ['roles'],
    type: 'CHECK',
    where: {
    roles: ['user', 'admin', 'moderator', 'guest']
    }
    });
    queryInterface.addConstraint('Users', {
    fields: ['roles'],
    type: 'DEFAULT',
    defaultValue: 'guest'
    });
    queryInterface.addConstraint('Users', {
    fields: ['username'],
    type: 'PRIMARY KEY',
    name: 'custom_primary_constraint_name'
    });
    queryInterface.addConstraint('Users', {
    fields: ['first_name', 'last_name'],
    type: 'PRIMARY KEY',
    name: 'custom_primary_constraint_name'
    });
    queryInterface.addConstraint('Posts', {
    fields: ['username'],
    type: 'FOREIGN KEY',
    name: 'custom_fkey_constraint_name',
    references: { //Required field
    table: 'target_table_name',
    field: 'target_column_name'
    },
    onDelete: 'cascade',
    onUpdate: 'cascade'
    });
    queryInterface.addConstraint('TableName', {
    fields: ['source_column_name', 'other_source_column_name'],
    type: 'FOREIGN KEY',
    name: 'custom_fkey_constraint_name',
    references: { //Required field
    table: 'target_table_name',
    fields: ['target_column_name', 'other_target_column_name']
    },
    onDelete: 'cascade',
    onUpdate: 'cascade'
    });
  • Disables foreign key checks for the duration of the callback. The foreign key checks are only disabled for the current connection. To specify the connection, you can either use the "connection" or the "transaction" option. If you do not specify a connection, this method will reserve a connection for the duration of the callback, and release it afterwards. You will receive the connection or transaction as the first argument of the callback. You must use this connection to execute queries

    Type Parameters

    • T

    Returns Promise<T>

    await this.queryInterface.withoutForeignKeyChecks(options, async connection => {
    const truncateOptions = { ...options, connection };

    for (const model of models) {
    await model.truncate(truncateOptions);
    }
    });
  • Disables foreign key checks for the duration of the callback. The foreign key checks are only disabled for the current connection. To specify the connection, you can either use the "connection" or the "transaction" option. If you do not specify a connection, this method will reserve a connection for the duration of the callback, and release it afterwards. You will receive the connection or transaction as the first argument of the callback. You must use this connection to execute queries

    Type Parameters

    • T

    Returns Promise<T>

    await this.queryInterface.withoutForeignKeyChecks(options, async connection => {
    const truncateOptions = { ...options, connection };

    for (const model of models) {
    await model.truncate(truncateOptions);
    }
    });