QueryInterface
Интерфейс, используемый Sequelize для взаимодействия со всеми базами данных
Краткое описание методов
| Публичные методы | ||
|---|---|---|
| public | Добавить новый столбец в таблицу | |
| public | Добавить ограничение к таблице | |
| public | addIndex(tableName: string | Object, attributes: Array, options: Object, rawTablename: string): Promise Добавить индекс к столбцу | |
| public | Удалить несколько записей из таблицы | |
| public | Вставить несколько записей в таблицу | |
| 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 | Создать таблицу с заданным набором атрибутов | |
| 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 | Удалить таблицу из базы данных | |
| 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
});
Возвращаемое значение:
| 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 |
|
Имя ограничения. Если не указано, Sequelize автоматически создаёт именованное ограничение на основе типа ограничения, имени таблицы и имён столбцов |
| options.defaultValue | string |
|
Значение для ограничения по умолчанию |
| options.where | Object |
|
Условие WHERE/выражение для ограничения CHECK |
| options.references | Object |
|
Объект, определяющий целевую таблицу, имя столбца для создания ограничения внешнего ключа |
| options.references.table | string |
|
Имя целевой таблицы |
| options.references.field | string |
|
Имя целевого столбца |
| rawTablename | string |
|
Имя таблицы для обратной совместимости |
Возвращаемое значение:
| Promise |
Пример:
queryInterface.addConstraint('Users', ['email'], {
type: 'unique',
name: 'custom_unique_constraint_name'
}); queryInterface.addConstraint('Users', ['roles'], {
type: 'check',
where: {
roles: ['user', 'admin', 'moderator', 'guest']
}
}); 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 |
|
Используется только совместно с TRUNCATE. Удаляет все таблицы, имеющие внешние ключи, ссылающиеся на указанную таблицу, или на любые таблицы, добавленные в группу из-за CASCADE. |
| options.restartIdentity | boolean |
|
Используется только совместно с TRUNCATE. Автоматически перезапускает последовательности, принадлежащие столбцам усеченной таблицы. |
| model | Модель |
|
Модель |
Возвращаемое значение:
| Promise |
public bulkInsert(tableName: строка, records: Массив, options: Объект, 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 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, это означает использование | |
| options.variables | Array<Object> |
Список объявленных переменных. Каждая переменная должна быть объектом со строковыми полями |
Возвращаемое значение:
| 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
Создать схему
Возвращаемое значение:
| 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
}
)
Возвращаемое значение:
| 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
}
}
public dropDatabase(database: string, options: Object): Promise source
Удалить базу данных
Возвращаемое значение:
| Promise |
public dropFunction(functionName: string, params: Array, options: Object): Promise source
Удалить SQL функцию
Возвращаемое значение:
| Promise |
Пример:
queryInterface.dropFunction(
'someFunction',
[
{type: 'varchar', name: 'param1', direction: 'IN'},
{type: 'integer', name: 'param2', direction: 'INOUT'}
]
); public dropSchema(schema: string, options: Object): Promise source
Удалить схему
Возвращаемое значение:
| Promise |
public dropTable(tableName: string, options: Object): Promise source
Удалить таблицу из базы данных
Возвращаемое значение:
| Promise |
public getForeignKeyReferencesForTable(tableName: string, options: Object): Promise source
Получить детали ссылок на внешний ключ для таблицы
Эти детали содержат constraintSchema, constraintName, constraintCatalog tableCatalog, tableSchema, tableName, columnName, referencedTableCatalog, referencedTableCatalog, referencedTableSchema, referencedTableName, referencedColumnName. Обратите внимание: информация о ограничениях не будет возвращена, если используется sqlite.
Возвращаемое значение:
| Promise |
public removeColumn(tableName: строка, attributeName: строка, options: объект): Promise исходник
Удалить столбец из таблицы
Возвращаемое значение:
| Promise |
public removeConstraint(tableName: строка, constraintName: строка, options: объект): Promise исходник
Удалить ограничение из таблицы
Возвращаемое значение:
| Promise |
public removeIndex(tableName: строка, indexNameOrAttributes: строка, options: объект): Promise исходник
Удалить существующий индекс из таблицы
Возвращаемое значение:
| Promise |
public renameFunction(oldFunctionName: string, params: Array, newFunctionName: string, options: Object): Promise source
Переименовать функцию SQL
Возвращаемое значение:
| Promise |
Пример:
queryInterface.renameFunction(
'fooFunction',
[
{type: 'varchar', name: 'param1', direction: 'IN'},
{type: 'integer', name: 'param2', direction: 'INOUT'}
],
'barFunction'
); 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 |
опции запроса |
Copyright © 2014–present Sequelize contributors
Licensed under the MIT License.
https://sequelize.org/v5/class/lib/query-interface.js~QueryInterface.html