Spec-Zone.ru › Sequelize 4

Sequelize

Это основной класс, точка входа в sequelize. Чтобы его использовать, вам нужно просто импортировать sequelize:

const Sequelize = require('sequelize');

В дополнение к sequelize, библиотека подключения для диалекта, который вы хотите использовать, также должна быть установлена в вашем проекте. Однако вам не нужно её импортировать, так как sequelize позаботится об этом.

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

Статические публичные методы
public static

and(args: String | Object): and

Запрос AND

с версии v2.0.0-dev3
public static

cast(val: any, type: String): cast

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

с версии v2.0.0-dev3
public static

col(col: String): col

Создаёт объект, представляющий колонку в БД, что позволяет ссылаться на другую колонку в вашем запросе.

с версии v2.0.0-dev3
public static

fn(fn: String, args: any): fn

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

с версии v2.0.0-dev3
public static

json(conditions: String | Object, value: String | Number | Boolean): json

Создаёт объект, представляющий вложенные условия where для типов данных json в postgres/sqlite/mysql.

public static

literal(val: any): literal

Создаёт объект, представляющий литерал, т.е.

с версии v2.0.0-dev3
public static

or(args: String | Object): or

Запрос OR

с версии v2.0.0-dev3
public static

useCLS(ns: Object): Object

Использование CLS с Sequelize.

public static

where(attr: Object, comparator: String | Op, logic: String | Object): *

Способ указания attr = condition.

с версии v2.0.0-dev3

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

Публичный конструктор
public

constructor(database: String, username: String, password: String, options: Object)

Инициализация sequelize с именем базы данных, именем пользователя и паролем

Краткое описание членов

Публичные члены
public

models: {}

Модели хранятся здесь под именем, заданным sequelize.define

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

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

authenticate(options: *): Promise

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

public

close(): Promise

Закрыть все подключения, используемые экземпляром sequelize, и освободить все ссылки, чтобы экземпляр можно было удалить сборщиком мусора.

public

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

Создать новую схему базы данных.

public

define(modelName: String, attributes: Object, options: Object): Model

Определить новую модель, представляющую таблицу в БД.

public

drop(options: object): Promise

Удалить все таблицы, определённые через этот экземпляр sequelize.

public

dropAllSchemas(options: Object): Promise

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

public

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

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

public

escape(value: String): String

Экранировать значение.

public

getDialect(): String

Возвращает указанный диалект.

public

getQueryInterface(): QueryInterface

Возвращает экземпляр QueryInterface.

public

import(path: String): Model

Импортировать модель, определённую в другом файле

public

isDefined(modelName: String): Boolean

Проверяет, определена ли модель с данным именем

public

model(modelName: String): Model

Получить уже определённую модель

public

query(sql: String, options: Object): Promise

Выполнить запрос к БД, возможно, минуя все возможности sequelize.

public

random(): fn

Получить fn для случайного числа, в зависимости от диалекта

public

set(variables: Object, options: Object): Promise

Выполнить запрос, который установит переменную среды или пользователя.

public

showAllSchemas(options: Object): Promise

Показать все определённые схемы

public

sync(options: Object): Promise

Синхронизировать все определённые модели с БД.

public

transaction(options: Object, autoCallback: Function): Promise

Начать транзакцию.

public

truncate(options: object): Promise

Обнулить все таблицы, определённые через модели sequelize.

Статические общедоступные методы

public static and(args: String | Object): and since v2.0.0-dev3 source

Запрос AND

Параметры:

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

Каждый аргумент будет соединён оператором AND

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

and

См. также:

  • Model.findAll

public static cast(val: any, type: String): cast since v2.0.0-dev3 source

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

Параметры:

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

Значение для приведения типов

type String

Тип, к которому необходимо привести значение

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

cast

public static col(col: String): col since v2.0.0-dev3 source

Создаёт объект, представляющий столбец в БД, что позволяет ссылаться на другой столбец в запросе. Это часто полезно в сочетании с sequelize.fn, так как необработанные строковые аргументы для fn будут экранированы.

Параметры:

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

Имя столбца

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

col

См. также:

  • Sequelize#fn

public static fn(fn: String, args: any): fn since v2.0.0-dev3 source

Создаёт объект, представляющий баз данных функцию. Это может быть использовано в запросах поиска, как в части where, так и order, а также в качестве значений по умолчанию в определениях столбцов. Если вы хотите обратиться к столбцам в своей функции, вы должны использовать sequelize.col, чтобы столбцы правильно интерпретировались как столбцы, а не как строки.

Преобразование имени пользователя к верхнему регистру

instance.updateAttributes({
  username: self.sequelize.fn('upper', self.sequelize.col('username'))
})

Параметры:

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

Функция, которую вы хотите вызвать

args any

Все последующие аргументы будут переданы в качестве аргументов функции

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

fn

Пример:

Преобразование имени пользователя к верхнему регистру
instance.updateAttributes({
  username: self.sequelize.fn('upper', self.sequelize.col('username'))
})

См. также:

  • Model.findAll
  • Sequelize.define
  • Sequelize.col

public static json(conditions: String | Object, value: String | Number | Boolean): json source

Создаёт объект, представляющий вложенные условия where для типов данных json в postgres/sqlite/mysql.

Параметры:

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

Хэш, содержащий строки/числа или другие вложенные хэши, строку с использованием нотации точек или строку с использованием синтаксиса json postgres/sqlite/mysql.

value String | Number | Boolean
  • необязательный

Необязательное значение для сравнения. Создаёт строку вида "<json path> = '<value>'".

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

json

См. также:

  • Model#findAll

public static literal(val: any): literal since v2.0.0-dev3 source

Создаёт объект, представляющий литерал, т.е. то, что не будет экранировано.

Параметры:

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

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

literal

public static or(args: String | Object): or since v2.0.0-dev3 source

Запрос OR

Параметры:

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

Каждый аргумент будет объединён операцией OR

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

or

См. также:

  • Model.findAll

public static useCLS(ns: Object): Object source

Использование CLS с Sequelize. Пространство имён CLS, переданное в качестве параметра, сохраняется как Sequelize._cls, а обещание bluebird модифицируется для использования этого пространства имён с помощью модуля cls-bluebird.

Параметры:

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

Пространство имён CLS

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

Object

Конструктор Sequelize

public static where(attr: Object, comparator: String | Op, logic: String | Object): * since v2.0.0-dev3 source

Способ задания attr = условие.

Атрибут может быть объектом из Model.rawAttributes, (например, Model.rawAttributes.id или Model.rawAttributes.name). Атрибут должен быть определён в вашем определении модели. Атрибут также может быть объектом из одной из утилит Sequelize (sequelize.fn, sequelize.col и т.д.).

Для строковых атрибутов используйте синтаксис { where: { attr: something }}. Если вы не хотите, чтобы ваша строка экранировалась, используйте sequelize.literal.

Параметры:

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

Атрибут, который может быть объектом атрибута из Model.rawAttributes или объектом Sequelize, например, экземпляром sequelize.fn. Для простых строковых атрибутов используйте синтаксис POJO

comparator String | Op
  • необязательный
  • по умолчанию: '='
logic String | Object

Условие. Может быть как простым типом, так и более сложным условием (or, and, .literal и т.д.).

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

*

См. также:

  • Model.findAll

Публичные конструкторы

public constructor(database: String, username: String, password: String, options: Object) source

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

Пример использования

// without password and options
const sequelize = new Sequelize('database', 'username')

// without options
const sequelize = new Sequelize('database', 'username', 'password')

// without password / with blank password
const sequelize = new Sequelize('database', 'username', null, {})

// with password and options
const sequelize = new Sequelize('my_database', 'john', 'doe', {})

// with database, username, and password in the options object
const sequelize = new Sequelize({ database, username, password });

// with uri
const sequelize = new Sequelize('mysql://localhost:3306/database', {})

Параметры:

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

Имя базы данных

username String
  • optional
  • по умолчанию: null

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

password String
  • optional
  • по умолчанию: null

Пароль, используемый для аутентификации в базе данных. Поддерживает шифрование SQLCipher для SQLite.

options Object
  • optional
  • по умолчанию: {}

Объект с параметрами.

options.host String
  • optional
  • по умолчанию: 'localhost'

Хост реляционной базы данных.

options.port Integer
  • optional
  • по умолчанию:

Порт реляционной базы данных.

options.username String
  • optional
  • по умолчанию: null

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

options.password String
  • optional
  • по умолчанию: null

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

options.database String
  • optional
  • по умолчанию: null

Имя базы данных

options.dialect String
  • optional

Диалект базы данных, к которой вы подключаетесь. Один из mysql, postgres, sqlite и mssql.

options.dialectModulePath String
  • optional
  • по умолчанию: null

Если указано, загрузить библиотеку диалекта из этого пути. Например, если вы хотите использовать pg.js вместо pg при подключении к базе данных pg, вы должны указать 'pg.js' здесь

options.dialectOptions Object
  • optional

Объект дополнительных параметров, которые передаются непосредственно библиотеке подключения

options.storage String
  • optional

Используется только SQLite. По умолчанию: ':memory:'

options.protocol String
  • optional
  • по умолчанию: 'tcp'

Протокол реляционной базы данных.

options.define Object
  • optional
  • по умолчанию: {}

Параметры по умолчанию для определения моделей. См. sequelize.define для опций

options.query Object
  • optional
  • по умолчанию: {}

Параметры по умолчанию для sequelize.query

options.set Object
  • optional
  • по умолчанию: {}

Параметры по умолчанию для sequelize.set

options.sync Object
  • optional
  • по умолчанию: {}

Параметры по умолчанию для sequelize.sync

options.timezone string
  • optional
  • по умолчанию: '+00:00'

Временная зона, используемая при преобразовании даты из базы данных в объект даты JavaScript. Временная зона также используется для установки TIMEZONE при подключении к серверу, чтобы убедиться, что результат функций NOW, CURRENT_TIMESTAMP и других функций времени находится в правильной временной зоне. Для наилучшей кроссплатформенной производительности используйте формат +/-HH:MM. Также можно использовать строковые представления временных зон, используемые moment.js (например, 'America/Los_Angeles'); это полезно для учета изменений летнего времени.

options.standardConformingStrings boolean
  • optional
  • по умолчанию: true

Параметр сеанса PostgreSQL standard_conforming_strings. Установите в false , чтобы не устанавливать параметр. ВНИМАНИЕ: Установка в false может привести к уязвимостям и не рекомендуется!

options.logging Function
  • optional
  • по умолчанию: console.log

Функция, которая выполняется каждый раз, когда Sequelize что-то записывает.

options.benchmark Boolean
  • optional
  • по умолчанию: false

Передаёт время выполнения запроса в миллисекундах в качестве второго аргумента функции logging (options.logging).

options.omitNull Boolean
  • optional
  • по умолчанию: false

Флаг, определяющий, должны ли нулевые значения передаваться в SQL-запросы или нет.

options.native Boolean
  • optional
  • по умолчанию: false

Флаг, определяющий, использовать ли родную библиотеку или нет. В настоящее время это имеет эффект только для postgres.

options.replication Boolean
  • optional
  • по умолчанию: false

Использование репликации чтение/запись. Для включения репликации передайте объект со двумя свойствами, read и write. Write должен быть объектом (один сервер для обработки записей), а read — массивом объектов (несколько серверов для обработки чтений). Каждый сервер read/write может иметь следующие свойства: host, port, username, password, database

options.pool Object
  • optional

Конфигурация пула подключений к базе данных sequelize.

options.pool.max Integer
  • optional
  • по умолчанию: 5

Максимальное количество подключений в пуле.

options.pool.min Integer
  • optional
  • по умолчанию: 0

Минимальное количество подключений в пуле.

options.pool.idle Integer
  • optional
  • по умолчанию: 10000

Максимальное время в миллисекундах, в течение которого соединение может быть бездействующим перед освобождением. Используйте вместе с evict для правильной работы, для получения дополнительной информации см. https://github.com/coopernurse/node-pool/issues/178#issuecomment-327110870

options.pool.acquire Integer
  • optional
  • по умолчанию: 10000

Максимальное время в миллисекундах, которое пул будет пытаться получить соединение, прежде чем выбросить ошибку.

options.pool.evict Integer
  • optional
  • по умолчанию: 10000

Интервал времени в миллисекундах для удаления устаревших соединений. Установите в 0, чтобы отключить эту функцию.

options.pool.handleDisconnects Boolean
  • optional
  • по умолчанию: true

Управляет тем, должен ли пул автоматически обрабатывать разрыв соединения, не вызывая ошибок.

options.pool.validate Функция
  • необязательно

Функция, которая валидирует подключение. Вызывается с параметром client. По умолчанию функция проверяет, что client — это объект и что его состояние не отключено

options.quoteIdentifiers Булево
  • необязательно
  • по умолчанию: true

Устанавливается в значение false для того, чтобы имена таблиц и атрибутов были регистронезависимыми в Postgres и избежать двойного цитирования. ВНИМАНИЕ: Установка в значение false может привести к уязвимостям и не рекомендуется!

options.transactionType Строка
  • необязательно
  • по умолчанию: 'DEFERRED'

Устанавливает тип транзакции по умолчанию. Возможные значения см. в Sequelize.Transaction.TYPES. Только для Sqlite.

options.isolationLevel Строка
  • необязательно

Устанавливает уровень изоляции транзакции по умолчанию. Возможные значения см. в Sequelize.Transaction.ISOLATION_LEVELS.

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

Набор флагов, которые управляют тем, когда запрос автоматически повторно выполняется.

options.retry.match Массив
  • необязательно

Запрос будет повторно выполнен только в том случае, если ошибка соответствует одному из этих строк.

options.retry.max Целое число
  • необязательно

Сколько раз запрос, который завершился ошибкой, будет автоматически повторно выполнен. Установка значения 0 отключает повторную попытку при ошибке SQL_BUSY.

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

Выполнять встроенные валидаторы типов при вставке и обновлении, например, проверять, являются ли аргументы, переданные в целочисленные поля, целыми числами.

options.operatorsAliases Объект | Булево
  • необязательно
  • по умолчанию: true

Псевдоним операторов на основе строк, значение по умолчанию — true, что включит все псевдонимы операторов. Передайте объект, чтобы ограничить набор псевдонимов операторов, или false, чтобы полностью их отключить.

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

общедоступный models: {} источник

Модели хранятся здесь под именем, заданным для sequelize.define

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

public authenticate(options: *): Promise source

Проверка соединения путём аутентификации

Параметры:

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

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

Promise

public close(): Promise source

Закрытие всех соединений, используемых этим экземпляром sequelize, и освобождение всех ссылок, чтобы экземпляр можно было утилизировать.

Обычно это делается при выходе процесса, поэтому вам нужно вызывать этот метод только в том случае, если вы создаёте несколько экземпляров и хотите утилизировать некоторые из них.

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

Promise

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

Создание новой схемы базы данных.

Обратите внимание, что это схема в смысле PostgreSQL, а не таблица базы данных. В MySQL и SQLite эта команда ничего не сделает.

Параметры:

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

Имя схемы

options Object
  • default: {}
options.logging Boolean | function

Функция, которая регистрирует запросы SQL, или false для отсутствия регистрации

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

Promise

См. также:

  • Model.schema

public define(modelName: String, attributes: Object, options: Object): Model source

Определение новой модели, представляющей таблицу в БД.

Столбцы таблицы определяются объектом, который передаётся в качестве второго аргумента. Каждый ключ объекта представляет столбец

Параметры:

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

Имя модели. Модель будет храниться в sequelize.models под этим именем

attributes Object

Объект, где каждый атрибут является столбцом таблицы. См. Model.init

options Object
  • optional

Эти параметры объединяются с параметрами по умолчанию define, предоставленными конструктору Sequelize, и передаются в Model.init()

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

Model

Пример:

sequelize.define('modelName', {
    columnA: {
        type: Sequelize.BOOLEAN,
        validate: {
          is: ["[a-z]",'i'],        // will only allow letters
          max: 23,                  // only allow values <= 23
          isIn: {
            args: [['en', 'zh']],
            msg: "Must be English or Chinese"
          }
        },
        field: 'column_a'
        // Other attributes here
    },
    columnB: Sequelize.STRING,
    columnC: 'MY VERY OWN COLUMN TYPE'
})

sequelize.models.modelName // The model will now be available in models under the name given to define

См. также:

  • Model.init для более подробного описания объектов `options` и `attributes`.
  • Раздел руководства по определению моделей
  • DataTypes Список возможных типов данных

public drop(options: object): Promise source

Удаление всех таблиц, определенных через этот экземпляр sequelize. Это делается путём вызова Model.drop для каждой модели

Параметры:

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

Параметры, передаваемые в каждый вызов Model.drop

options.logging Boolean | function

Функция, которая регистрирует запросы SQL, или false для отсутствия регистрации

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

Promise

См. также:

  • Model.drop для параметров

public dropAllSchemas(options: Object): Promise source

Удаление всех схем

Обратите внимание, что это схема в смысле PostgreSQL, а не таблица базы данных. В MySQL и SQLite это эквивалентно удалению всех таблиц.

Параметры:

Имя Тип Атрибут Описание
options Object
  • default: {}
options.logging Boolean | function

Функция, которая регистрирует запросы SQL, или false для отсутствия регистрации

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

Promise

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

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

Обратите внимание, что это схема в смысле PostgreSQL, а не таблица базы данных. В MySQL и SQLite это удаляет таблицу, соответствующую имени схемы.

Параметры:

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

Имя схемы

options Object
  • default: {}
options.logging Boolean | function

Функция, которая регистрирует SQL-запросы, или false для отсутствия регистрации.

Возвращает:

Promise

public escape(value: String): String source

Экранировать значение.

Параметры:

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

Возвращает:

String

public getDialect(): String source

Возвращает указанный диалект.

Возвращает:

String

Указанный диалект.

public getQueryInterface(): QueryInterface source

Возвращает экземпляр QueryInterface.

Возвращает:

QueryInterface

Экземпляр (синглтон) QueryInterface.

public import(path: String): Model source

Импортировать модель, определённую в другом файле.

Импортированные модели кэшируются, поэтому многократные вызовы import с одинаковым путем не загружают файл многократно.

См. https://github.com/sequelize/express-example для краткого примера определения моделей в отдельных файлах, чтобы их можно было импортировать с помощью sequelize.import

Параметры:

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

Путь к файлу, содержащему модель, которую вы хотите импортировать. Если часть относительная, она будет разрешена относительно вызывающего файла

Возвращает:

Model

public isDefined(modelName: String): Boolean source

Проверяет, определена ли модель с заданным именем.

Параметры:

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

Имя модели, определенной с помощью Sequelize.define

Возвращает:

Boolean

public model(modelName: String): Model source

Получить уже определённую модель.

Параметры:

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

Имя модели, определенной с помощью Sequelize.define

Возвращает:

Model

Исключения:

*

Вызовет ошибку, если модель не определена (то есть, если sequelize#isDefined возвращает false).

public query(sql: String, options: Object): Promise source

Выполнить запрос к БД, с возможностью обойти все удобства sequelize.

По умолчанию функция вернёт два аргумента: массив результатов и объект метаданных, содержащий количество затронутых строк и т. д. Для доступа к результатам используйте .spread.

Если вы выполняете тип запроса, где вам не нужны метаданные, например SELECT запрос, вы можете передать тип запроса, чтобы sequelize отформатировал результаты:

sequelize.query('SELECT...').spread((results, metadata) => {
  // Raw query - use spread
});

sequelize.query('SELECT...', { type: sequelize.QueryTypes.SELECT }).then(results => {
  // SELECT query - use then
})

Параметры:

Имя Тип Атрибут Описание
sql String
options Object
  • необязательно
  • по умолчанию: {}

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

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

Если true, sequelize не будет пытаться отформатировать результаты запроса или создать экземпляр модели из результата.

options.transaction Transaction
  • необязательно
  • по умолчанию: null

Транзакция, в рамках которой должен быть выполнен запрос.

options.type QueryTypes
  • необязательно
  • по умолчанию: 'RAW'

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

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

Если true, преобразует объекты с именами свойств, разделенными ., в вложенные объекты с помощью dottie.js. Например, { 'user.username': 'john' } становится { user: { username: 'john' }}. Когда nest равно true, тип запроса предполагается равным 'SELECT', если не указано иное.

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

Устанавливает тип запроса в SELECT и возвращает одну строку.

options.replacements Object | Array
  • необязательно

Либо объект замены параметров с именами в формате :param, либо массив незамещённых параметров для замены ? в вашем SQL.

options.bind Object | Array
  • необязательно

Либо объект параметров связывания с именами в формате _param, либо массив параметров связывания без имён для замены $1, $2, ... в вашем SQL.

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

Вынуждает запрос использовать пул записи независимо от типа запроса.

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

Функция, которая выполняется при выполнении запроса для регистрации sql.

options.instance new Model()
  • необязательно

Экземпляр sequelize, используемый для построения экземпляра возврата.

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

Модель sequelize, используемая для построения возвращаемых экземпляров моделей (ранее называлось callee).

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

Набор флагов, контролирующих, когда запрос автоматически повторно выполняется.

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

Повторно выполнить запрос только если ошибка соответствует одной из этих строк.

options.retry.max Integer
  • необязательно

Сколько раз запрос, который завершился неудачей, автоматически повторно выполняется.

options.searchPath String
  • необязательно
  • по умолчанию: DEFAULT

Необязательный параметр для указания схемы search_path (только Postgres).

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

Если false, не добавлять к запросу search_path (только Postgres).

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

Сопоставить возвращаемые поля с полями модели, если присутствует options.model или options.instance. Сопоставление произойдёт до построения экземпляра модели.

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

Сопоставить возвращаемые поля с произвольными именами для типа запроса SELECT.

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

Promise

См. также:

  • Model.build для получения дополнительной информации об опции экземпляра.

public random(): fn source

Получить fn для случайного числа в зависимости от диалекта.

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

fn

public set(variables: Object, options: Object): Promise source

Выполнить запрос, который установит переменную среды или пользователя. Переменные устанавливаются на подключение, поэтому этой функции необходима транзакция. Работает только для MySQL.

Параметры:

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

Объект с несколькими переменными.

options Object

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

options.transaction Transaction

Транзакция, в рамках которой должен быть выполнен запрос.

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

Promise

public showAllSchemas(options: Object): Promise source

Отображение всех определенных схем

Обратите внимание, что это схема в смысле PostgreSQL, а не таблица базы данных. В MySQL и SQLite это отобразит все таблицы.

Параметры:

Имя Тип Атрибут Описание
options Object
  • значение по умолчанию: {}
options.logging Boolean | function

Функция для логирования SQL-запросов или false для отсутствия логирования

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

Promise

public sync(options: Object): Promise source

Синхронизация всех определенных моделей с БД.

Параметры:

Имя Тип Атрибут Описание
options Object
  • необязательный
  • значение по умолчанию: {}
options.force Boolean
  • необязательный
  • значение по умолчанию: false

Если force равно true, для каждой модели будет выполнено DROP TABLE IF EXISTS, прежде чем она попытается создать собственную таблицу

options.match RegExp
  • необязательный

Сопоставление с регулярным выражением имени базы данных перед синхронизацией, проверка безопасности для случаев, когда force: true используется в тестах, но не в рабочем коде

options.logging Boolean | function
  • необязательный
  • значение по умолчанию: console.log

Функция, которая регистрирует SQL-запросы, или false для отсутствия логирования

options.schema String
  • необязательный
  • значение по умолчанию: 'public'

Схема, в которой должны создаваться таблицы. Это может быть переопределено для каждой таблицы в sequelize.define

options.searchPath String
  • необязательный
  • значение по умолчанию: DEFAULT

Необязательный параметр для указания схемы search_path (только Postgres)

options.hooks Boolean
  • необязательный
  • значение по умолчанию: true

Если hooks равно true, будут вызваны хуки beforeSync, afterSync, beforeBulkSync, afterBulkSync

options.alter Boolean
  • необязательный
  • значение по умолчанию: false

Изменяет таблицы в соответствии с моделями. Не рекомендуется для использования в рабочей среде. Удаляет данные в столбцах, которые были удалены или изменили свой тип в модели.

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

Promise

public transaction(options: Object, autoCallback: Function): Promise source

Начать транзакцию. При использовании транзакций вы должны передать транзакцию в аргументе options, чтобы запрос выполнялся в рамках этой транзакции

sequelize.transaction().then(transaction => {
  return User.findOne(..., {transaction})
    .then(user => user.updateAttributes(..., {transaction}))
    .then(() => transaction.commit())
    .catch(() => transaction.rollback());
})

Также поддерживается синтаксис автоматического подтверждения или отката на основе разрешения цепочки промисов:

sequelize.transaction(transaction => { // Note that we use a callback rather than a promise.then()
  return User.findOne(..., {transaction})
    .then(user => user.updateAttributes(..., {transaction}))
}).then(() => {
  // Committed
}).catch(err => {
  // Rolled back
  console.error(err);
});

Если у вас включен CLS, транзакция будет автоматически передана любому запросу, выполняемому в рамках обратного вызова. Для включения CLS добавьте его в ваш проект, создайте пространство имен и установите его в конструкторе sequelize:

const cls = require('continuation-local-storage');
const ns = cls.createNamespace('....');
const Sequelize = require('sequelize');
Sequelize.useCLS(ns);

Обратите внимание, что CLS включен для всех экземпляров sequelize, и все экземпляры будут использовать одно и то же пространство имен

Параметры:

Имя Тип Атрибут Описание
options Object
  • необязательный
  • значение по умолчанию: {}
options.autocommit Boolean
  • необязательный
options.type String
  • необязательный
  • значение по умолчанию: 'DEFERRED'

См. Sequelize.Transaction.TYPES для возможных вариантов. Только Sqlite.

options.isolationLevel String
  • необязательный

См. Sequelize.Transaction.ISOLATION_LEVELS для возможных вариантов

options.logging Function
  • необязательный
  • значение по умолчанию: false

Функция, которая выполняется во время выполнения запроса для регистрации SQL.

autoCallback Function
  • необязательный

Обратный вызов вызывается с объектом транзакции и должен возвращать промис. Если промис разрешен, транзакция подтверждается; если промис отклонен, транзакция отменяется

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

Promise

См. также:

  • Transaction

public truncate(options: object): Promise source

Очистка всех таблиц, определенных через модели sequelize. Это выполняется путем вызова Model.truncate() для каждой модели.

Параметры:

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

Параметры, передаваемые в Model.destroy в дополнение к truncate

options.transaction Boolean | function
  • необязательный
options.logging Boolean | function
  • необязательный

Функция, которая регистрирует SQL-запросы, или false для отсутствия логирования

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

Promise

См. также:

  • Model.truncate для получения дополнительной информации

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

Spec-Zone.ru

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