Sequelize
Это основной класс, точка входа в sequelize.
Краткое описание статических методов
| Статические публичные методы | ||
|---|---|---|
| public static | Запрос AND | с версии v2.0.0-dev3 |
| public static | Создает объект, представляющий вызов функции преобразования. | с версии v2.0.0-dev3 |
| public static | Создает объект, представляющий столбец в базе данных. Это позволяет ссылаться на другой столбец в запросе. | с версии v2.0.0-dev3 |
| public static | Создает объект, представляющий функцию базы данных. | с версии v2.0.0-dev3 |
| public static | Создает объект, представляющий вложенные условия WHERE для данных типа json в postgres/sqlite/mysql. | |
| public static | Создает объект, представляющий литерал, т.е. | с версии v2.0.0-dev3 |
| public static | Запрос OR | с версии v2.0.0-dev3 |
| public static | Использовать CLS с Sequelize. | |
| public static | Способ указания attr = condition. | с версии v2.0.0-dev3 |
Краткое описание конструкторов
| Публичный конструктор | ||
|---|---|---|
| public | constructor(database: string, username: string, password: string, options: Object) Инициализировать sequelize с именем базы данных, именем пользователя и паролем. | |
Краткое описание членов
| Публичные члены | ||
|---|---|---|
| public | models: {} Модели хранятся здесь под именем, заданным | |
Краткое описание методов
| Публичные методы |
|---|
| public | authenticate(options: Object): Promise Проверить подключение, попытавшись авторизоваться. | |
| public | Закрыть все подключения, используемые этим экземпляром sequelize, и освободить все ссылки, чтобы экземпляр можно было собрать мусором. | |
| public | createSchema(schema: string, options: Object): Promise Создать новую схему базы данных. | |
| public | Определить новую модель, представляющую таблицу в базе данных. | |
| public | Удалить все таблицы, определённые через этот экземпляр sequelize. | |
| public | dropAllSchemas(options: Object): Promise Удалить все схемы. | |
| public | dropSchema(schema: string, options: Object): Promise Удалить отдельную схему. | |
| public | Выполнить экранирование значения. | |
| public | Возвращает имя базы данных. | |
| public | getDialect(): string Возвращает указанный диалект. | |
| public | Возвращает экземпляр QueryInterface. | |
| public | Импортировать модель, определённую в другом файле. | |
| public | Проверяет, определена ли модель с данным именем. | |
| public | Получить модель, которая уже определена. | |
| public | Выполнить запрос к БД, необязательно минуя все возможности Sequelize. | |
| public | Получить функцию для случайного числа, основываясь на диалекте. | |
| public | Выполнить запрос, который установит переменную среды или пользователя. | |
| public | showAllSchemas(options: Object): Promise Показать все определённые схемы. |
| public | Синхронизировать все определенные модели с БД. | |
| public | transaction(options: Object, autoCallback: Function): Promise Начать транзакцию. | |
| public | Очистить все таблицы, определенные через модели sequelize. |
Статические общедоступные методы
public static and(args: ...string | Object): and с версии v2.0.0-dev3 source
Запрос AND
Возвращает:
| and |
См. также:
public static cast(val: any, type: string): cast с версии v2.0.0-dev3 source
Создаёт объект, представляющий вызов функции преобразования.
Параметры:
| Имя | Тип | Атрибут | Описание |
|---|---|---|---|
| val | any |
Значение, которое нужно преобразовать | |
| type | string |
Тип, к которому нужно преобразовать |
Возвращает:
| cast |
public static col(col: string): col с версии v2.0.0-dev3 source
Создаёт объект, представляющий столбец в БД. Это позволяет ссылаться на другой столбец в запросе. Это часто полезно в сочетании с sequelize.fn, так как строковые аргументы raw для fn будут экранированы.
Параметры:
| Имя | Тип | Атрибут | Описание |
|---|---|---|---|
| col | string |
Имя столбца |
Возвращает:
| col |
См. также:
- Sequelize#fn
public static fn(fn: string, args: any): fn с версии v2.0.0-dev3 source
Создаёт объект, представляющий базу данных функцию. Это можно использовать в запросах поиска, как в части where, так и в части order, и в качестве значений по умолчанию в определениях столбцов. Если вы хотите сослаться на столбцы в своей функции, вы должны использовать sequelize.col, чтобы столбцы правильно интерпретировались как столбцы, а не как строки.
Параметры:
| Имя | Тип | Атрибут | Описание |
|---|---|---|---|
| fn | string |
Функция, которую вы хотите вызвать | |
| args | any |
Все последующие аргументы будут переданы в качестве аргументов функции |
Возвращает:
| fn |
Пример:
instance.update({
username: sequelize.fn('upper', sequelize.col('username'))
}); См. также:
public static json(conditionsOrPath: string | Object, value: string | number | boolean): json source
Создаёт объект, представляющий вложенные условия where для типов данных json в postgres/sqlite/mysql.
Параметры:
| Имя | Тип | Атрибут | Описание |
|---|---|---|---|
| conditionsOrPath | string | Object |
Хэш, содержащий строки/числа или другие вложенные хэши, строка с использованием нотации точек или строка с использованием синтаксиса json postgres/sqlite/mysql. | |
| value | string | number | boolean |
|
Необязательное значение для сравнения. Создаёт строку вида «<путь_к_json> = '<значение>'». |
Возвращает:
| json |
См. также:
public static literal(val: any): literal с версии v2.0.0-dev3 source
Создаёт объект, представляющий литерал, т.е. то, что не будет экранировано.
Параметры:
| Имя | Тип | Атрибут | Описание |
|---|---|---|---|
| val | any |
значение литерала |
Возвращает:
| literal |
public static or(args: ...string | Object): or с версии v2.0.0-dev3 source
Запрос OR
Возвращает:
| or |
См. также:
public static useCLS(ns: Object): Object source
Использует CLS с Sequelize. Пространство имён CLS, предоставленное, хранится как Sequelize._cls, и promise библиотеки bluebird настраивается на использование пространства имён, используя модуль cls-bluebird.
Параметры:
| Имя | Тип | Атрибут | Описание |
|---|---|---|---|
| ns | Object |
Пространство имён CLS |
Возвращает:
| Object |
Конструктор Sequelize |
public static where(attr: Object, comparator: Symbol, logic: string | Object): * since v2.0.0-dev3 source
Способ указания attr = condition.
Атрибут может быть объектом, взятым из Model.rawAttributes (например, Model.rawAttributes.id или Model.rawAttributes.name). Атрибут должен быть определён в вашем определении модели. Атрибут также может быть объектом из одной из функций утилиты sequelize (sequelize.fn, sequelize.col и т. д.).
Для строковых атрибутов используйте стандартный синтаксис { where: { attr: something }}. Если вы не хотите, чтобы ваша строка экранировалась, используйте sequelize.literal.
Параметры:
| Имя | Тип | Атрибут | Описание |
|---|---|---|---|
| attr | Object |
Атрибут, который может быть либо объектом атрибута из | |
| comparator | Symbol |
|
оператор |
| logic | string | Object |
Условие. Может быть как простым типом, так и дополнительным условием ( |
Возвращаемое значение:
| * |
См. также:
Публичные конструкторы
| database | string |
|
Имя базы данных |
| username | string |
|
Имя пользователя, используемое для аутентификации в базе данных. |
| password | string |
|
Пароль, используемый для аутентификации в базе данных. Поддерживает шифрование SQLCipher для SQLite. |
| options | Object |
|
Объект с опциями. |
| options.host | string |
|
Хост реляционной базы данных. |
| options.port | number |
|
Порт реляционной базы данных. |
| options.username | string |
|
Имя пользователя, используемое для аутентификации в базе данных. |
| options.password | string |
|
Пароль, используемый для аутентификации в базе данных. |
| options.database | string |
|
Имя базы данных |
| options.dialect | string |
|
Диалект базы данных, к которой вы подключаетесь. Один из mysql, postgres, sqlite и mssql. |
| options.dialectModule | string |
|
Если указано, используйте эту библиотеку диалекта. Например, если вы хотите использовать pg.js вместо pg при подключении к базе данных pg, вы должны указать здесь 'require("pg.js")' |
| options.dialectModulePath | string |
|
Если указано, загрузите библиотеку диалекта из этого пути. Например, если вы хотите использовать pg.js вместо pg при подключении к базе данных pg, вы должны указать здесь '/path/to/pg.js' |
| options.dialectOptions | Object |
|
Объект дополнительных опций, которые передаются непосредственно в библиотеку подключения |
| options.storage | string |
|
Используется только sqlite. Значение по умолчанию ':memory:' |
| options.protocol | string |
|
Протокол реляционной базы данных. |
| options.define | Object |
|
Опции по умолчанию для определений моделей. Смотрите Model.init. |
| options.query | Object |
|
Опции по умолчанию для sequelize.query |
| options.schema | string |
|
Схема для использования |
| options.set | Object |
|
Опции по умолчанию для sequelize.set |
| options.sync | Object |
|
Опции по умолчанию для sequelize.sync |
| options.timezone | string |
|
Часовой пояс, используемый при преобразовании даты из базы данных в дату JavaScript. Часовой пояс также используется для SET TIMEZONE при подключении к серверу, чтобы гарантировать, что результат NOW, CURRENT_TIMESTAMP и других функций, связанных со временем, находится в правильном часовом поясе. Для наилучшей кроссплатформенной производительности используйте формат +/-HH:MM. Также будут приниматься строковые версии часовых поясов, используемых moment.js (например, 'America/Los_Angeles'); это полезно для учета изменений летнего времени. |
| options.clientMinMessages | string | boolean |
|
Параметр сессии PostgreSQL |
| options.standardConformingStrings | boolean |
|
Параметр сессии PostgreSQL |
| options.logging | Function |
|
Функция, которая выполняется каждый раз, когда Sequelize что-то логирует. |
| options.benchmark | boolean |
|
Время выполнения запроса в миллисекундах передается как второй аргумент в функцию логирования (options.logging). |
| options.omitNull | boolean |
|
Флаг, определяющий, должны ли нулевые значения передаваться в SQL-запросы или нет. |
| options.native | boolean |
|
Флаг, определяющий, должна ли использоваться нативная библиотека. В настоящее время влияет только на postgres. |
| options.replication | boolean |
|
Использовать репликацию чтение/запись. Для включения репликации передайте объект с двумя свойствами: read и write. Write должен быть объектом (один сервер для обработки записи), а read - массивом объектов (несколько серверов для обработки чтения). Каждый сервер чтения/записи может иметь следующие свойства: |
| options.pool | Object |
|
Конфигурация пула подключений sequelize. |
| options.pool.max | number |
|
Максимальное количество подключений в пуле. |
| options.pool.min | number |
|
Минимальное количество подключений в пуле. |
| options.pool.idle | number |
|
Максимальное время в миллисекундах, которое соединение может быть неактивным перед освобождением. |
| options.pool.acquire | number |
|
Максимальное время в миллисекундах, которое пул будет пытаться получить соединение перед выбросом ошибки. |
| options.pool.evict | number |
|
Интервал времени в миллисекундах, после которого sequelize-pool удалит неактивные соединения. |
| options.pool.validate | Function |
|
Функция, которая проверяет подключение. Вызывается с клиентом. По умолчанию функция проверяет, что клиент является объектом и что его состояние не отключено. |
| options.quoteIdentifiers | boolean |
|
Установите в |
| options.transactionType | string |
|
Установите тип транзакции по умолчанию. См. |
| options.isolationLevel | string |
|
Установите уровень изоляции транзакций по умолчанию. См. |
| options.retry | Object |
|
Набор флагов, контролирующих, когда запрос автоматически повторяется. |
| options.retry.match | Array |
|
Повторять запрос только в том случае, если ошибка соответствует одному из этих строк. |
| options.retry.max | number |
|
Сколько раз неисправный запрос автоматически повторяется. Установите в 0, чтобы отключить повторение при ошибке SQL_BUSY. |
| options.typeValidation | boolean |
|
Выполнить встроенные валидаторы типов при вставке и обновлении, и при выборе с клаузой where, например, проверить, что аргументы, передаваемые в целочисленные поля, являются целочисленными. |
| options.operatorsAliases | Object |
|
Псевдоним оператора на основе строки. Передайте объект для ограничения набора псевдонимов операторов. |
| options.hooks | Object |
|
Объект глобальных функций хуков, которые вызываются до и после определенных событий жизненного цикла. Глобальные хуки будут выполняться после любых хуков, определенных для того же события на уровне моделей (См. |
| options.minifyAliases | boolean |
|
Флаг, определяющий, должны ли псевдонимы минимизироваться (в основном полезно для предотвращения ограничения символов псевдонимов Postgres в 64). |
| options.logQueryParameters | boolean |
|
Флаг, определяющий, следует ли показывать параметры связывания в журнале. |
Пример:
// without password / with blank password
const sequelize = new Sequelize('database', 'username', null, {
dialect: 'mysql'
})
// with password and options
const sequelize = new Sequelize('my_database', 'john', 'doe', {
dialect: 'postgres'
})
// with database, username, and password in the options object
const sequelize = new Sequelize({ database, username, password, dialect: 'mssql' });
// with uri
const sequelize = new Sequelize('mysql://localhost:3306/database', {})
// option examples
const sequelize = new Sequelize('database', 'username', 'password', {
// the sql dialect of the database
// currently supported: 'mysql', 'sqlite', 'postgres', 'mssql'
dialect: 'mysql',
// custom host; default: localhost
host: 'my.server.tld',
// for postgres, you can also specify an absolute path to a directory
// containing a UNIX socket to connect over
// host: '/sockets/psql_sockets'.
// custom port; default: dialect default
port: 12345,
// custom protocol; default: 'tcp'
// postgres only, useful for Heroku
protocol: null,
// disable logging or provide a custom logging function; default: console.log
logging: false,
// you can also pass any dialect options to the underlying dialect library
// - default is empty
// - currently supported: 'mysql', 'postgres', 'mssql'
dialectOptions: {
socketPath: '/Applications/MAMP/tmp/mysql/mysql.sock',
supportBigNumbers: true,
bigNumberStrings: true
},
// the storage engine for sqlite
// - default ':memory:'
storage: 'path/to/database.sqlite',
// disable inserting undefined values as NULL
// - default: false
omitNull: true,
// a flag for using a native library or not.
// in the case of 'pg' -- set this to true will allow SSL support
// - default: false
native: true,
// Specify options, which are used when sequelize.define is called.
// The following example:
// define: { timestamps: false }
// is basically the same as:
// Model.init(attributes, { timestamps: false });
// sequelize.define(name, attributes, { timestamps: false });
// so defining the timestamps for each model will be not necessary
define: {
underscored: false,
freezeTableName: false,
charset: 'utf8',
dialectOptions: {
collate: 'utf8_general_ci'
},
timestamps: true
},
// similar for sync: you can define this to always force sync for models
sync: { force: true },
// pool configuration used to pool database connections
pool: {
max: 5,
idle: 30000,
acquire: 60000,
},
// isolation level of each transaction
// defaults to dialect default
isolationLevel: Transaction.ISOLATION_LEVELS.REPEATABLE_READ
}) Общедоступные члены
public models: {} source
Модели хранятся здесь под именем, заданным sequelize.define
Общедоступные методы
public authenticate(options: Object): Promise source
Проверяет подключение, пытаясь выполнить аутентификацию. Выполняется запрос SELECT 1+1 AS result
Параметры:
| Имя | Тип | Атрибут | Описание |
|---|---|---|---|
| options | Object |
|
Параметры запроса |
Возвращаемое значение:
| Promise |
public close(): Promise source
Закрывает все подключения, используемые этим экземпляром sequelize, и освобождает все ссылки, чтобы экземпляр можно было собрать мусорщиком.
Обычно это выполняется при выходе процесса, поэтому вы должны вызывать этот метод только в том случае, если вы создаёте несколько экземпляров и хотите собрать мусор по некоторым из них.
Возвращаемое значение:
| Promise |
public createSchema(schema: string, options: Object): Promise source
Создает новую схему базы данных.
Примечание: это схема в понимании PostgreSQL, а не таблица базы данных. В MySQL и SQLite эта команда ничего не сделает.
Возвращаемое значение:
| Promise |
См. также:
public define(modelName: string, attributes: Object, options: Object): Model source
Определяет новую модель, представляющую таблицу в базе данных.
Столбцы таблицы определяются объектом, который передаётся как второй аргумент. Каждый ключ объекта представляет столбец
Параметры:
| Имя | Тип | Атрибут | Описание |
|---|---|---|---|
| modelName | string |
Имя модели. Модель будет храниться в | |
| attributes | Object |
Объект, где каждый атрибут — столбец таблицы. См. Model.init | |
| options | Object |
|
Эти параметры объединяются с параметрами по умолчанию для 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'
},
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 для каждой модели.
Возвращаемое значение:
| Promise |
См. также:
- Model.drop для опций
public dropAllSchemas(options: Object): Promise source
Удалить все схемы.
Примечание: это схема в смысле PostgreSQL, а не таблица базы данных. В MySQL и SQLite это эквивалентно удалению всех таблиц.
Возвращаемое значение:
| Promise |
public dropSchema(schema: string, options: Object): Promise source
Удалить отдельную схему.
Примечание: это схема в смысле PostgreSQL, а не таблица базы данных. В MySQL и SQLite это эквивалентно удалению таблицы, соответствующей имени схемы.
Возвращаемое значение:
| Promise |
public escape(value: string): string source
Экранировать значение.
Параметры:
| Имя | Тип | Атрибут | Описание |
|---|---|---|---|
| value | string |
строковое значение для экранирования |
Возвращаемое значение:
| string |
public getQueryInterface(): QueryInterface source
Возвращает экземпляр QueryInterface.
Возвращаемое значение:
| QueryInterface |
Экземпляр (синглтон) QueryInterface. |
public import(importPath: string): Model source
Импортирует модель, определённую в другом файле. Импортированные модели кэшируются, поэтому многократные вызовы import с одним и тем же путём не загружают файл несколько раз.
Параметры:
| Имя | Тип | Атрибут | Описание |
|---|---|---|---|
| importPath | string |
Путь к файлу, содержащему модель, которую вы хотите импортировать. Если путь относительный, он будет разрешён относительно вызываемого файла |
Возвращаемое значение:
| Model |
Импортированная модель, возвращённая из кэша, если она уже была импортирована |
public isDefined(modelName: string): boolean source
Проверяет, определена ли модель с данным именем.
Параметры:
| Имя | Тип | Атрибут | Описание |
|---|---|---|---|
| modelName | string |
Имя модели, определённой с помощью Sequelize.define |
Возвращаемое значение:
| boolean |
Возвращает true, если модель определена, иначе false |
public model(modelName: string): Model source
Получение уже определённой модели.
Параметры:
| Имя | Тип | Атрибут | Описание |
|---|---|---|---|
| modelName | string |
Имя модели, определённой с помощью Sequelize.define |
Возвращаемое значение:
| Model |
Указанная модель |
Исключения:
* |
Будет выброшено исключение, если модель не определена (то есть, если sequelize#isDefined возвращает false) |
public query(sql: string, options: Object): Promise source
Выполнить запрос к БД, при необходимости, минуя все преимущества Sequelize.
По умолчанию функция вернет два аргумента: массив результатов и объект метаданных, содержащий количество затронутых строк и т.д.
Если вы выполняете тип запроса, где вам не нужны метаданные, например, запрос SELECT, вы можете передать тип запроса, чтобы sequelize отформатировал результаты:
sequelize.query('SELECT...').then(([results, metadata]) => {
// Raw query - use then plus array 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 |
|
Транзакция, в рамках которой должен быть выполнен запрос |
| options.type | QueryTypes |
|
Тип выполняемого вами запроса. Тип запроса влияет на то, как результаты форматируются перед возвратом. Тип является строкой, но |
| options.nest | boolean |
|
Если true, преобразует объекты с именами свойств, разделенными |
| options.plain | boolean |
|
Устанавливает тип запроса в |
| options.replacements | Object | Array |
|
Либо объект именованных замен параметров в формате |
| options.bind | Object | Array |
|
Либо объект именованных параметров привязки в формате |
| options.useMaster | boolean |
|
Принудительно использовать пул записи для запроса, независимо от типа запроса. |
| options.logging | Function |
|
Функция, которая выполняется во время выполнения запроса для логирования 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 |
|
Необязательный параметр для указания пути поиска схемы (только Postgres) |
| options.supportsSearchPath | boolean |
|
Если false, не добавляйте префикс к запросу с помощью search_path (только Postgres) |
| options.mapToModel | boolean |
|
Сопоставить возвращаемые поля с полями модели, если присутствует |
| options.fieldMap | Object |
|
Сопоставить возвращаемые поля с произвольными именами для типа запроса |
Возвращает:
| Promise |
См. также:
- Model.build для получения дополнительной информации о параметре instance.
public random(): fn source
Получить функцию для генерации случайных чисел в зависимости от диалекта.
Возвращает:
| 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 это отобразит все таблицы.
Возвращает:
| Promise |
public sync(options: Object): Promise source
Синхронизировать все определённые модели с БД.
Параметры:
| Имя | Тип | Атрибут | Описание |
|---|---|---|---|
| options | Object |
|
Параметры синхронизации. |
| options.force | boolean |
|
Если force равен true, каждая модель будет |
| options.match | RegExp |
|
Сопоставить регулярное выражение с именем базы данных перед синхронизацией, проверка безопасности для случаев, когда force: true используется в тестах, но не в рабочей среде. |
| options.logging | boolean | Function |
|
Функция для логирования SQL-запросов или false для отключения логирования. |
| options.schema | string |
|
Схема, в которой должны быть созданы таблицы. Это может быть переопределено для каждой таблицы в sequelize.define. |
| options.searchPath | string |
|
Необязательный параметр для указания пути поиска схемы (только PostgreSQL). |
| options.hooks | boolean |
|
Если hooks равен true, то будут вызываться передSync, послеSync, передBulkSync, послеBulkSync хуки. |
| options.alter | boolean |
|
Изменить таблицы в соответствии с моделями. Не рекомендуется для использования в производстве. Удаляет данные из столбцов, которые были удалены или изменили свой тип в модели. |
Возвращает:
| Promise |
public transaction(options: Object, autoCallback: Function): Promise source
Начать транзакцию. При использовании транзакций вы должны передать транзакцию в аргументе options, чтобы запрос выполнялся в рамках этой транзакции. @см. Transaction
Если у вас включен CLS, транзакция автоматически будет передана любому запросу, выполняемому в рамках обратного вызова
Параметры:
| Имя | Тип | Атрибут | Описание |
|---|---|---|---|
| options | Object |
|
Параметры транзакции |
| options.type | string |
|
Возможные значения см. в |
| options.isolationLevel | string |
|
Возможные значения см. в |
| options.deferrable | string |
|
Устанавливает ограничения, которые должны быть отложены или проверены немедленно. См. |
| options.logging | Function |
|
Функция, которая выполняется во время выполнения запроса для записи SQL. |
| autoCallback | Function |
|
Обратный вызов вызывается с объектом транзакции и должен возвращать промис. Если промис разрешен, транзакция подтверждается; если промис отклонен, транзакция отменяется |
Возвращаемое значение:
| Promise |
Пример:
sequelize.transaction().then(transaction => {
return User.findOne(..., {transaction})
.then(user => user.update(..., {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.update(..., {transaction}))
}).then(() => {
// Committed
}).catch(err => {
// Rolled back
console.error(err);
});
const cls = require('continuation-local-storage');
const ns = cls.createNamespace('....');
const Sequelize = require('sequelize');
Sequelize.useCLS(ns);
// Note, that CLS is enabled for all sequelize instances, and all instances will share the same namespace public truncate(options: Object): Promise source
Очистить все таблицы, определенные через модели sequelize. Это делается путем вызова Model.truncate() для каждой модели.
Возвращаемое значение:
| Promise |
См. также:
- Model.truncate для получения дополнительной информации
Copyright © 2014–present Sequelize contributors
Licensed under the MIT License.
https://sequelize.org/v5/class/lib/sequelize.js~Sequelize.html