Spec-Zone.ru › Sequelize 5

Sequelize

Это основной класс, точка входа в sequelize.

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

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

and(args: ...string | Object): and

Запрос AND

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

cast(val: any, type: string): 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(conditionsOrPath: 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: Symbol, 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: Object): 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

getDatabaseName(): string

Возвращает имя базы данных.

public

getDialect(): string

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

public

getQueryInterface(): QueryInterface

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

public

import(importPath: string): Model

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

public

isDefined(modelName: string): boolean

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

public

model(modelName: string): Model

Получить модель, которая уже определена.

public

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

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

public

random(): 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 с версии v2.0.0-dev3 source

Запрос AND

Параметры:

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

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

Возвращает:

and

См. также:

  • Model.findAll

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

См. также:

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

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

См. также:

  • Model.findAll

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

Параметры:

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

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

Возвращает:

or

См. также:

  • Model.findAll

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

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

comparator Symbol
  • необязательно
  • по умолчанию: 'Op.eq'

оператор

logic string | Object

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

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

*

См. также:

  • Model.findAll

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

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

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

Параметры:

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

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

username string
  • optional
  • default: null

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

password string
  • optional
  • default: null

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

options Object
  • optional
  • default: {}

Объект с опциями.

options.host string
  • optional
  • default: 'localhost'

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

options.port number
  • optional
  • default:

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

options.username string
  • optional
  • default: null

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

options.password string
  • optional
  • default: null

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

options.database string
  • optional
  • default: null

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

options.dialect string
  • optional

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

options.dialectModule string
  • optional
  • default: null

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

options.dialectModulePath string
  • optional
  • default: null

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

options.dialectOptions Object
  • optional

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

options.storage string
  • optional

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

options.protocol string
  • optional
  • default: 'tcp'

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

options.define Object
  • optional
  • default: {}

Опции по умолчанию для определений моделей. Смотрите Model.init.

options.query Object
  • optional
  • default: {}

Опции по умолчанию для sequelize.query

options.schema string
  • optional
  • default: null

Схема для использования

options.set Object
  • optional
  • default: {}

Опции по умолчанию для sequelize.set

options.sync Object
  • optional
  • default: {}

Опции по умолчанию для sequelize.sync

options.timezone string
  • optional
  • default: '+00:00'

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

options.clientMinMessages string | boolean
  • optional
  • default: 'warning'

Параметр сессии PostgreSQL client_min_messages. Установите в false чтобы не переопределять значение по умолчанию базы данных.

options.standardConformingStrings boolean
  • optional
  • default: true

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

options.logging Function
  • optional
  • default: console.log

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

options.benchmark boolean
  • optional
  • default: false

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

options.omitNull boolean
  • optional
  • default: false

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

options.native boolean
  • optional
  • default: false

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

options.replication boolean
  • optional
  • default: false

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

options.pool Object
  • optional

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

options.pool.max number
  • optional
  • default: 5

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

options.pool.min number
  • optional
  • default: 0

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

options.pool.idle number
  • optional
  • default: 10000

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

options.pool.acquire number
  • optional
  • default: 60000

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

options.pool.evict number
  • optional
  • default: 1000

Интервал времени в миллисекундах, после которого sequelize-pool удалит неактивные соединения.

options.pool.validate Function
  • optional

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

options.quoteIdentifiers boolean
  • optional
  • default: true

Установите в false , чтобы сделать имена таблиц и атрибуты регистронезависимыми в Postgres и пропустить двойное обрамление их. ПРЕДУПРЕЖДЕНИЕ: Установка этого значения в false может привести к уязвимостям и не рекомендуется!

options.transactionType string
  • optional
  • default: 'DEFERRED'

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

options.isolationLevel string
  • optional

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

options.retry Object
  • optional

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

options.retry.match Array
  • optional

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

options.retry.max number
  • optional

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

options.typeValidation boolean
  • optional
  • default: false

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

options.operatorsAliases Object
  • optional

Псевдоним оператора на основе строки. Передайте объект для ограничения набора псевдонимов операторов.

options.hooks Object
  • optional

Объект глобальных функций хуков, которые вызываются до и после определенных событий жизненного цикла. Глобальные хуки будут выполняться после любых хуков, определенных для того же события на уровне моделей (См. Sequelize.Model.init() для списка). Кроме того, beforeConnect(), afterConnect(), beforeDisconnect(), и afterDisconnect() хуки могут быть определены здесь.

options.minifyAliases boolean
  • optional
  • default: false

Флаг, определяющий, должны ли псевдонимы минимизироваться (в основном полезно для предотвращения ограничения символов псевдонимов Postgres в 64).

options.logQueryParameters boolean
  • optional
  • default: false

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

Пример:

// 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 эта команда ничего не сделает.

Параметры:

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

Имя схемы

options Object
  • необязательный
  • по умолчанию: {}

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

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
  • необязательный

Эти параметры объединяются с параметрами по умолчанию для 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 для каждой модели.

Параметры:

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

Опции, передаваемые в каждый вызов Model.drop

options.logging boolean | Function
  • необязательно

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

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

Promise

См. также:

  • Model.drop для опций

public dropAllSchemas(options: Object): Promise source

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

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

Параметры:

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

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

options.logging boolean | Function
  • необязательно

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

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

Promise

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

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

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

Параметры:

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

Имя схемы

options Object
  • необязательно
  • по умолчанию: {}

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

options.logging boolean | Function
  • необязательно

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

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

Promise

public escape(value: string): string source

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

Параметры:

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

строковое значение для экранирования

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

string

public getDatabaseName(): string source

Возвращает имя базы данных.

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

string

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

public getDialect(): string source

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

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

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
  • необязательный
  • по умолчанию: 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

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

options.supportsSearchPath boolean
  • необязательный

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

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

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

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

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

Возвращает:

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 это отобразит все таблицы.

Параметры:

Имя Тип Атрибут Описание
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

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

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

Если hooks равен true, то будут вызываться передSync, послеSync, передBulkSync, послеBulkSync хуки.

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

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

Возвращает:

Promise

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

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

Если у вас включен CLS, транзакция автоматически будет передана любому запросу, выполняемому в рамках обратного вызова

Параметры:

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

Параметры транзакции

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

Возможные значения см. в Sequelize.Transaction.TYPES. Только для Sqlite.

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

Возможные значения см. в Sequelize.Transaction.ISOLATION_LEVELS

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

Устанавливает ограничения, которые должны быть отложены или проверены немедленно. См. Sequelize.Deferrable. Только для PostgreSQL

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

Функция, которая выполняется во время выполнения запроса для записи 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);
});
Для включения CLS добавьте его в свой проект, создайте пространство имен и задайте его в конструкторе sequelize:

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() для каждой модели.

Параметры:

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

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

options.logging boolean | Function
  • необязательно

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

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

Promise

См. также:

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

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

Spec-Zone.ru

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