Spec-Zone.ru › Sequelize 4

QueryInterface

Интерфейс, который Sequelize использует для взаимодействия со всеми базами данных

Краткое описание методов

Публичные методы
public

addColumn(table: String, key: String, attribute: Object, options: Object): Promise

Добавить новый столбец в таблицу

public

addConstraint(tableName: String, attributes: Array, options: Object): Promise

Добавить ограничения к таблице

public

addIndex(tableName: String, options: Object): Promise

Добавить индекс к столбцу

public

bulkDelete(tableName: String, identifier: Object): Promise

Удалить записи из таблицы

public

bulkInsert(tableName: String, records: Array, options: Object, fieldMappedAttributes: Object): Promise

Вставить записи в таблицу

public

changeColumn(tableName: String, attributeName: String, dataTypeOrOptions: Object, options: Object): Promise

Изменить определение столбца

public

createFunction(functionName: String, params: Array, returnType: String, language: String, body: String, optionsArray: Array, options: Object): Promise

Создать SQL функцию

public

createSchema(schema: String, options: Object): Promise

Создаёт схему

public

createTable(tableName: String, attributes: Object, options: Object, model: Model): Promise

Создать таблицу с заданным набором атрибутов

public

describeTable(tableName: String, options: Object): Promise<Object>

Описать структуру таблицы

public

dropAllSchemas(options: Object): Promise

Удалить все схемы

public

dropAllTables(options: Object): Promise

Удалить все таблицы из базы данных

public

dropFunction(functionName: String, params: Array, options: Object): Promise

Удалить SQL функцию

public

dropSchema(schema: String, options: Object): Promise

Удаляет схему

public

dropTable(tableName: String, options: Object): Promise

Удаляет таблицу из базы данных

public

getForeignKeyReferencesForTable(tableName: String, options: Object): Promise

Получить подробности ссылок на внешние ключи для таблицы.

public

removeColumn(tableName: String, attributeName: String, options: Object): Promise

Удалить столбец из таблицы

public

removeConstraint(tableName: String, constraintName: String, options: Object): Promise

public

removeIndex(tableName: String, indexNameOrAttributes: String, options: Object): Promise

Удалить уже существующий индекс из таблицы

public

renameColumn(tableName: String, attrNameBefore: String, attrNameAfter: String, options: Object): Promise

Переименовать столбец

public

renameFunction(oldFunctionName: String, params: Array, newFunctionName: String, options: Object): Promise

Переименовать SQL функцию

public

renameTable(before: String, after: String, options: Object): Promise

Переименовывает таблицу

public

showAllSchemas(options: Object): Promise<Array>

Показать все схемы

public

upsert(tableName: String, insertValues: Object, updateValues: Object, where: Object, model: Model, options: Object): Promise<created, primaryKey>

Вставка или обновление

Общедоступные методы

public addColumn(table: String, key: String, attribute: Object, options: Object): Promise source

Добавить новый столбец в таблицу

Параметры:

Имя Тип Атрибут Описание
table String

Таблица, к которой добавляется столбец

key String

Имя столбца

attribute Object

Определение атрибута

options Object
  • необязательно

Параметры запроса

Возвращаемое значение:

Promise

public addConstraint(tableName: String, attributes: Array, options: Object): Promise source

Добавить ограничения к таблице

Доступные ограничения:

  • UNIQUE
  • DEFAULT (только MSSQL)
  • CHECK (MySQL - игнорируется СУБД)
  • FOREIGN KEY
  • PRIMARY KEY

UNIQUE

queryInterface.addConstraint('Users', ['email'], {
  type: 'unique',
  name: 'custom_unique_constraint_name'
});

CHECK

queryInterface.addConstraint('Users', ['roles'], {
  type: 'check',
  where: {
     roles: ['user', 'admin', 'moderator', 'guest']
  }
});

По умолчанию - только MSSQL

queryInterface.addConstraint('Users', ['roles'], {
   type: 'default',
   defaultValue: 'guest'
});

Первичный ключ

queryInterface.addConstraint('Users', ['username'], {
   type: 'primary key',
   name: 'custom_primary_constraint_name'
});

Внешний ключ

queryInterface.addConstraint('Posts', ['username'], {
  type: 'foreign key',
  name: 'custom_fkey_constraint_name',
  references: { //Required field
    table: 'target_table_name',
    field: 'target_column_name'
  },
  onDelete: 'cascade',
  onUpdate: 'cascade'
});

Параметры:

Имя Тип Атрибут Описание
tableName String

Имя таблицы, к которой нужно добавить ограничение

attributes Array

Массив имён столбцов, к которым применяется ограничение

options Object

Объект для определения имени ограничения, типа и т.д.

options.type String

Тип ограничения. Одно из значений в доступных ограничениях (регистр не важен)

options.name String
  • необязательно

Имя ограничения. Если не указано, sequelize автоматически создаёт имя ограничения на основе типа ограничения, имён таблицы и столбцов.

options.defaultValue String
  • необязательно

Значение по умолчанию для ограничения

options.where Object
  • необязательно

Условие where/выражение для ограничения CHECK

options.references Object
  • необязательно

Объект, определяющий целевую таблицу, имя столбца для создания внешнего ключа

options.references.table String
  • необязательно

Имя целевой таблицы

options.references.field String
  • необязательно

Имя целевого столбца

Возвращаемое значение:

Promise

public addIndex(tableName: String, options: Object): Promise source

Добавить индекс к столбцу

Параметры:

Имя Тип Атрибут Описание
tableName String

Имя таблицы, к которой добавляется индекс

options Object
options.fields Array

Список атрибутов, к которым добавляется индекс

options.unique Boolean
  • необязательно

Создать уникальный индекс

options.using String
  • необязательно

Полезно для индексов GIN

options.type String
  • необязательно

Тип индекса, доступные варианты UNIQUE|FULLTEXT|SPATIAL

options.name String
  • необязательно

Имя индекса. По умолчанию <table><attr1><attr2>

options.where Object
  • необязательно

Условие where для индекса, для частичных индексов

Возвращаемое значение:

Promise

public bulkDelete(tableName: String, identifier: Object): Promise source

Удалить записи из таблицы

Параметры:

Имя Тип Атрибут Описание
tableName String

Имя таблицы, из которой удаляются записи

identifier Object

Условия where для поиска записей, которые нужно удалить

Возвращаемое значение:

Promise

public bulkInsert(tableName: String, records: Array, options: Object, fieldMappedAttributes: Object): Promise source

Вставка записей в таблицу

queryInterface.bulkInsert('roles', [{
   label: 'user',
   createdAt: new Date(),
   updatedAt: new Date()
 }, {
   label: 'admin',
   createdAt: new Date(),
   updatedAt: new Date()
 }]);

Params:

Name Type Attribute Description
tableName String

Имя таблицы, в которую нужно вставить запись

records Array

Список записей для вставки

options Object

Различные параметры, см. параметры Model.bulkCreate

fieldMappedAttributes Object

Различные атрибуты, сопоставленные по имени поля

Return:

Promise

public changeColumn(tableName: String, attributeName: String, dataTypeOrOptions: Object, options: Object): Promise source

Изменение определения столбца

Params:

Name Type Attribute Description
tableName String

Имя таблицы, которую нужно изменить

attributeName String

Имя столбца

dataTypeOrOptions Object

Определение атрибута для нового столбца

options Object
  • optional

Параметры запроса

Return:

Promise

public createFunction(functionName: String, params: Array, returnType: String, language: String, body: String, optionsArray: Array, options: Object): Promise source

Создание SQL-функции

queryInterface.createFunction(
  'someFunction',
  [
    {type: 'integer', name: 'param', direction: 'IN'}
  ],
  'integer',
  'plpgsql',
  'RETURN param + 1;',
  [
    'IMMUTABLE',
    'LEAKPROOF'
  ]
);

Params:

Name Type Attribute Description
functionName String

Имя создаваемой SQL-функции

params Array

Список параметров, объявленных для SQL-функции

returnType String

SQL-тип возвращаемого значения функции

language String

Имя языка, на котором реализована функция

body String

Исходный код функции

optionsArray Array

Дополнительные параметры для создания

options Object
  • optional

Return:

Promise

public createSchema(schema: String, options: Object): Promise source

Создает схему

Params:

Name Type Attribute Description
schema String

Имя схемы для создания

options Object
  • optional

Параметры запроса

Return:

Promise

public createTable(tableName: String, attributes: Object, options: Object, model: Model): Promise source

Создает таблицу с заданным набором атрибутов

queryInterface.createTable(
  'nameOfTheNewTable',
  {
    id: {
      type: Sequelize.INTEGER,
      primaryKey: true,
      autoIncrement: true
    },
    createdAt: {
      type: Sequelize.DATE
    },
    updatedAt: {
      type: Sequelize.DATE
    },
    attr1: Sequelize.STRING,
    attr2: Sequelize.INTEGER,
    attr3: {
      type: Sequelize.BOOLEAN,
      defaultValue: false,
      allowNull: false
    },
    //foreign key usage
    attr4: {
      type: Sequelize.INTEGER,
      references: {
        model: 'another_table_name',
        key: 'id'
      },
      onUpdate: 'cascade',
      onDelete: 'cascade'
    }
  },
  {
    engine: 'MYISAM',    // default: 'InnoDB'
    charset: 'latin1',   // default: null
    schema: 'public'     // default: public, PostgreSQL only.
  }
)

Params:

Name Type Attribute Description
tableName String

Имя создаваемой таблицы

attributes Object

Объект, представляющий список атрибутов таблицы для создания

options Object
  • optional
model Model
  • optional

Return:

Promise

public describeTable(tableName: String, options: Object): Promise<Object> source

Описание структуры таблицы

Этот метод возвращает массив хешей, содержащих информацию о всех атрибутах в таблице.

{
   name: {
     type:         'VARCHAR(255)', // this will be 'CHARACTER VARYING' for pg!
     allowNull:    true,
     defaultValue: null
   },
   isBetaMember: {
     type:         'TINYINT(1)', // this will be 'BOOLEAN' for pg!
     allowNull:    false,
     defaultValue: false
   }
}

Параметры:

Name Type Attribute Description
tableName String
options Object
  • optional

Параметры запроса

Возвращает:

Promise<Object>

public dropAllSchemas(options: Object): Promise source

Удалить все схемы

Параметры:

Name Type Attribute Description
options Object
  • optional

Параметры запроса

Возвращает:

Promise

public dropAllTables(options: Object): Promise source

Удалить все таблицы из базы данных

Параметры:

Name Type Attribute Description
options Object
  • optional
options.skip Array
  • optional

Список таблиц, которые нужно пропустить

Возвращает:

Promise

public dropFunction(functionName: String, params: Array, options: Object): Promise source

Удалить SQL-функцию

queryInterface.dropFunction(
  'someFunction',
  [
    {type: 'varchar', name: 'param1', direction: 'IN'},
    {type: 'integer', name: 'param2', direction: 'INOUT'}
  ]
);

Параметры:

Name Type Attribute Description
functionName String

Имя SQL-функции для удаления

params Array

Список параметров, объявленных для SQL-функции

options Object
  • optional

Возвращает:

Promise

public dropSchema(schema: String, options: Object): Promise source

Удаляет схему

Параметры:

Name Type Attribute Description
schema String

Имя схемы для создания

options Object
  • optional

Параметры запроса

Возвращает:

Promise

public dropTable(tableName: String, options: Object): Promise source

Удаляет таблицу из базы данных

Параметры:

Name Type Attribute Description
tableName String

Имя таблицы для удаления

options Object

Параметры запроса

Возвращает:

Promise

public getForeignKeyReferencesForTable(tableName: String, options: Object): Promise source

Получить детали ссылок внешних ключей для таблицы.

Эти детали содержат constraintSchema, constraintName, constraintCatalog tableCatalog, tableSchema, tableName, columnName, referencedTableCatalog, referencedTableCatalog, referencedTableSchema, referencedTableName, referencedColumnName. Напоминание: информация о constraint не будет возвращена, если это sqlite.

Параметры:

Name Type Attribute Description
tableName String
options Object
  • optional

Параметры запроса

Возвращает:

Promise

public removeColumn(tableName: String, attributeName: String, options: Object): Promise source

Удаление столбца из таблицы

Параметры:

Имя Тип Атрибут Описание
tableName String

Таблица, из которой нужно удалить столбец

attributeName String

Имя столбца для удаления

options Object
  • необязательно

Опции запроса

Возвращаемое значение:

Promise

public removeConstraint(tableName: String, constraintName: String, options: Object): Promise source

Параметры:

Имя Тип Атрибут Описание
tableName String

Имя таблицы, из которой нужно удалить ограничение

constraintName String

Имя ограничения

options Object

Опции запроса

Возвращаемое значение:

Promise

public removeIndex(tableName: String, indexNameOrAttributes: String, options: Object): Promise source

Удаление существующего индекса из таблицы

Параметры:

Имя Тип Атрибут Описание
tableName String

Имя таблицы, из которой нужно удалить индекс

indexNameOrAttributes String

Имя индекса

options Object
  • необязательно

Опции запроса

Возвращаемое значение:

Promise

public renameColumn(tableName: String, attrNameBefore: String, attrNameAfter: String, options: Object): Promise source

Переименование столбца

Параметры:

Имя Тип Атрибут Описание
tableName String

Имя таблицы, столбец которой нужно переименовать

attrNameBefore String

Текущее имя столбца

attrNameAfter String

Новое имя столбца

options Object
  • необязательно

Опция запроса

Возвращаемое значение:

Promise

public renameFunction(oldFunctionName: String, params: Array, newFunctionName: String, options: Object): Promise source

Переименование SQL функции

queryInterface.renameFunction(
  'fooFunction',
  [
    {type: 'varchar', name: 'param1', direction: 'IN'},
    {type: 'integer', name: 'param2', direction: 'INOUT'}
  ],
  'barFunction'
);

Параметры:

Имя Тип Атрибут Описание
oldFunctionName String
params Array

Список параметров, объявленных для SQL функции

newFunctionName String
options Object
  • необязательно

Возвращаемое значение:

Promise

public renameTable(before: String, after: String, options: Object): Promise source

Переименование таблицы

Параметры:

Имя Тип Атрибут Описание
before String

Текущее имя таблицы

after String

Новое имя таблицы

options Object
  • необязательно

Опции запроса

Возвращаемое значение:

Promise

общедоступный showAllSchemas(options: Объект): Обещание<Массив> источник

Показать все схемы

Параметры:

Имя Тип Атрибут Описание
options Объект
  • необязательно

Параметры запроса

Возвращаемое значение:

Обещание<Массив>

общедоступный upsert(tableName: Строка, insertValues: Объект, updateValues: Объект, where: Объект, model: Модель, options: Объект): Обещание<created, primaryKey> источник

Upsert

Параметры:

Имя Тип Атрибут Описание
tableName Строка
insertValues Объект

значения для вставки, сопоставленные с именем поля

updateValues Объект

значения для обновления, сопоставленные с именем поля

where Объект

различные условия

model Модель
options Объект

Возвращаемое значение:

Обещание<created, primaryKey>

Copyright © 2014–present Sequelize contributors
Licensed under the MIT License.
https://sequelize.org/v4/class/lib/query-interface.js~QueryInterface.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API