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 |
|
Параметры запроса |
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 |
|
Return:
| Promise |
public createSchema(schema: String, options: Object): Promise source
Создает схему
Params:
| Name | Type | Attribute | Description |
|---|---|---|---|
| schema | String |
Имя схемы для создания | |
| options | Object |
|
Параметры запроса |
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 |
| |
| model | Model |
|
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 |
|
Параметры запроса |
Возвращает:
| Promise<Object> |
public dropAllSchemas(options: Object): Promise source
Удалить все схемы
Параметры:
| Name | Type | Attribute | Description |
|---|---|---|---|
| options | Object |
|
Параметры запроса |
Возвращает:
| Promise |
public dropAllTables(options: Object): Promise source
Удалить все таблицы из базы данных
Параметры:
| Name | Type | Attribute | Description |
|---|---|---|---|
| options | Object |
| |
| options.skip | Array |
|
Список таблиц, которые нужно пропустить |
Возвращает:
| 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 |
|
Возвращает:
| Promise |
public dropSchema(schema: String, options: Object): Promise source
Удаляет схему
Параметры:
| Name | Type | Attribute | Description |
|---|---|---|---|
| schema | String |
Имя схемы для создания | |
| options | Object |
|
Параметры запроса |
Возвращает:
| 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 |
|
Параметры запроса |
Возвращает:
| 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