Spec-Zone.ru › Sequelize 5

QueryInterface

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

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

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

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

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

public

addConstraint(tableName: string, attributes: Array, options: Object, rawTablename: string): Promise

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

public

addIndex(tableName: string | Object, attributes: Array, options: Object, rawTablename: string): Promise

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

public

bulkDelete(tableName: string, where: Object, options: Object, model: Model): Promise

Удалить несколько записей из таблицы

public

bulkInsert(tableName: string, records: Array, options: Object, attributes: Object): Promise

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

public

bulkUpdate(tableName: string, values: Object, identifier: Object, options: Object, attributes: Object): Promise

Обновить несколько записей таблицы

public

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

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

public

createDatabase(database: string, 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

dropDatabase(database: string, 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<boolean, ?number>

Upsert

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

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

Добавление нового столбца в таблицу

queryInterface.addColumn('tableA', 'columnC', Sequelize.STRING, {
   after: 'columnB' // after option is only supported by MySQL
});

Параметры:

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

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

key string

Имя столбца

attribute Object

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

options Object
  • optional

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

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

Promise

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

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

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

  • UNIQUE
  • DEFAULT (только MSSQL)
  • CHECK (MySQL — игнорируется движком базы данных)
  • FOREIGN KEY
  • PRIMARY KEY

Параметры:

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

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

attributes Array

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

options Object

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

options.type string

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

options.name string
  • optional

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

options.defaultValue string
  • optional

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

options.where Object
  • optional

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

options.references Object
  • optional

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

options.references.table string
  • optional

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

options.references.field string
  • optional

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

rawTablename string
  • optional

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

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

Promise

Пример:

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'
});

public addIndex(tableName: string | Object, attributes: Array, options: Object, rawTablename: string): Promise source

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

Параметры:

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

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

attributes Массив
  • необязательно

Используйте options.fields вместо него, Список атрибутов, к которым добавляется индекс

options Объект

Параметры индексов

options.fields Массив

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

options.concurrently boolean
  • необязательно

Передайте CONCURRENT, чтобы другие операции выполнялись во время создания индекса

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

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

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

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

options.operator string
  • необязательно

Оператор индекса

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

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

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

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

options.where Объект
  • необязательно

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

rawTablename string
  • необязательно

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

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

Promise

public bulkDelete(tableName: string, where: Object, options: Object, model: Model): Promise source

Удалить несколько записей из таблицы

Параметры:

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

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

where Объект

Условие where для поиска записей для удаления

options Объект
  • необязательно

Параметры

options.truncate boolean
  • необязательно

Использовать команду truncate table

options.cascade boolean
  • необязательно
  • по умолчанию: false

Используется только совместно с TRUNCATE. Удаляет все таблицы, имеющие внешние ключи, ссылающиеся на указанную таблицу, или на любые таблицы, добавленные в группу из-за CASCADE.

options.restartIdentity boolean
  • необязательно
  • по умолчанию: false

Используется только совместно с TRUNCATE. Автоматически перезапускает последовательности, принадлежащие столбцам усеченной таблицы.

model Модель
  • необязательно

Модель

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

Promise

public bulkInsert(tableName: строка, records: Массив, options: Объект, attributes: Объект): Обещание источник

Вставка нескольких записей в таблицу

Параметры:

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

Имя таблицы для вставки записи

records Массив

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

options Объект

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

attributes Объект

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

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

Обещание

Пример:

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

public bulkUpdate(tableName: строка, values: Объект, identifier: Объект, options: Объект, attributes: Объект): Обещание источник

Обновление нескольких записей таблицы

Параметры:

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

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

values Объект

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

identifier Объект

Хэш с условиями ИЛИ ID как целое число ИЛИ строка с условиями

options Объект
  • необязательно

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

attributes Объект
  • необязательно

Атрибуты возвращаемых объектов, если поддерживаются диалектом SQL

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

Обещание

Пример:

queryInterface.bulkUpdate('roles', {
    label: 'admin',
  }, {
    userType: 3,
  },
);

public changeColumn(tableName: строка, attributeName: строка, dataTypeOrOptions: Объект, options: Объект): Обещание источник

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

Параметры:

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

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

attributeName строка

Имя столбца

dataTypeOrOptions Объект

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

options Объект
  • необязательно

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

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

Обещание

public createDatabase(database: string, options: Object): Promise source

Создать базу данных

Параметры:

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

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

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

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

options.charset string
  • необязательно

Стандартный кодировка символов базы данных, только для MYSQL

options.collate string
  • необязательно

Стандартная сортировка базы данных

options.encoding string
  • необязательно

Стандартный кодировка символов базы данных, только для PostgreSQL

options.ctype string
  • необязательно

Классификация символов базы данных, только для PostgreSQL

options.template string
  • необязательно

Имя шаблона для создания новой базы данных, только для PostgreSQL

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

Promise

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

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

Параметры:

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

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

params Array

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

returnType string

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

language string

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

body string

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

optionsArray Array

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

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

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

options.force boolean

Если force имеет значение true, любая существующая функция с такими же параметрами будет заменена. Для postgres, это означает использование CREATE OR REPLACE FUNCTION вместо CREATE FUNCTION. Значение по умолчанию — false

options.variables Array<Object>

Список объявленных переменных. Каждая переменная должна быть объектом со строковыми полями type и name, а также, необязательно, полем default.

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

Promise

Пример:

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

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

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

Параметры:

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

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

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

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

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

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.
    comment: 'my table', // comment for table
    collate: 'latin1_danish_ci' // collation, MYSQL only
  }
)

Параметры:

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

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

attributes Object

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

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

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

model Model
  • необязательно

Класс модели

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

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
   }
}

Параметры:

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

Имя таблицы

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

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

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

Promise<Object>

public dropAllSchemas(options: Object): Promise source

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

Параметры:

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

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

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

Promise

public dropAllTables(options: Object): Promise source

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

Параметры:

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

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

options.skip Array
  • необязательно

Список таблиц для пропуска

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

Promise

public dropDatabase(database: string, options: Object): Promise source

Удалить базу данных

Параметры:

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

Имя базы данных для удаления

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

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

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

Promise

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

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

Параметры:

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

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

params Array

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

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

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

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

Promise

Пример:

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

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

Удалить схему

Параметры:

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

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

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

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

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

Promise

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

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

Параметры:

Имя Тип Атрибут Описание
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. Обратите внимание: информация о ограничениях не будет возвращена, если используется sqlite.

Параметры:

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

Имя таблицы

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

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

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

Promise

public removeColumn(tableName: строка, attributeName: строка, options: объект): Promise исходник

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

Параметры:

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

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

attributeName строка

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

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

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

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

Promise

public removeConstraint(tableName: строка, constraintName: строка, options: объект): Promise исходник

Удалить ограничение из таблицы

Параметры:

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

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

constraintName строка

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

options объект

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

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

Promise

public removeIndex(tableName: строка, indexNameOrAttributes: строка, options: объект): Promise исходник

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

Параметры:

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

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

indexNameOrAttributes строка

Имя индекса

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

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

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

Promise

public renameColumn(tableName: строка, attrNameBefore: строка, attrNameAfter: строка, options: объект): Promise исходник

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

Параметры:

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

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

attrNameBefore строка

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

attrNameAfter строка

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

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

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

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

Promise

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

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

Параметры:

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

Текущее имя функции

params Array

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

newFunctionName string

Новое имя функции

options Object
  • optional

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

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

Promise

Пример:

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

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

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

Параметры:

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

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

after string

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

options Object
  • optional

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

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

Promise

public showAllSchemas(options: Object): Promise<Array> source

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

Параметры:

Имя Тип Атрибут Описание
options Object
  • optional

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

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

Promise<Array>

public upsert(tableName: string, insertValues: Object, updateValues: Object, where: Object, model: Model, options: Object): Promise<boolean, ?number> source

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

Параметры:

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

таблица для вставки или обновления

insertValues Object

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

updateValues Object

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

where Object

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

model Model

Модель для вставки или обновления

options Object

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

Возвращает:

Promise<boolean, ?number>

Возвращает массив с <создано, первичный ключ>

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

Spec-Zone.ru

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