ガイド リファレンス ソース
public class | source

Sequelize

これはメインクラスであり、Sequelizeへのエントリーポイントです。

静的メソッドの概要

静的パブリックメソッド
public static

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

ANDクエリ

since v2.0.0-dev3
public static

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

cast関数への呼び出しを表すオブジェクトを作成します。

since v2.0.0-dev3
public static

col(col: string): col

DB内の列を表すオブジェクトを作成します。これにより、クエリ内で別の列を参照できます。

since v2.0.0-dev3
public static

fn(fn: string, args: any): fn

データベース関数を表すオブジェクトを作成します。

since v2.0.0-dev3
public static

json(conditionsOrPath: string | object, value: string | number | boolean): json

postgres/sqlite/mysqlのJSONデータ型に対するネストされたwhere条件を表すオブジェクトを作成します。

public static

literal(val: any): literal

リテラルを表すオブジェクトを作成します。

since v2.0.0-dev3
public static

or(args: ...string | object): or

ORクエリ。

since v2.0.0-dev3
public static

SequelizeでCLS (継続ローカルストレージ) を使用します。

public static

where(attr: object, comparator: symbol, logic: string | object): *

attr = condition を指定する方法。

since v2.0.0-dev3

コンストラクタ概要

パブリックコンストラクタ
public

constructor(database: string, username: string, password: string, options: object)

データベース名、ユーザー名、パスワードを指定してSequelizeをインスタンス化します。

メンバ概要

パブリックメンバ
public

models: {}

モデルは、sequelize.defineで指定された名前でここに保存されます。

メソッド概要

パブリックメソッド
public

async authenticate(options: object): Promise

認証を試行して接続をテストします。

public

このsequelizeインスタンスで使用されているすべての接続を閉じ、インスタンスがガベージコレクションされるようにすべての参照を解放します。

public

async createSchema(schema: string, options: object): Promise

新しいデータベーススキーマを作成します。

public

define(modelName: string, attributes: object, options: object): Model

データベースのテーブルを表す新しいモデルを定義します。

public

async drop(options: object): Promise

このsequelizeインスタンスで定義されたすべてのテーブルを削除します。

public

async dropAllSchemas(options: object): Promise

すべてのスキーマを削除します。

public

async dropSchema(schema: string, options: object): Promise

単一のスキーマを削除します。

public

escape(value: string): string

値をエスケープします。

public

データベース名を返します。

public

指定されたダイアレクトを返します。

public

QueryInterfaceのインスタンスを返します。

public

isDefined(modelName: string): boolean

指定された名前のモデルが定義されているかどうかを確認します。

public

model(modelName: string): Model

すでに定義されているモデルを取得します。

public

async query(sql: string, options: object): Promise

必要に応じてSequelizeの機能をすべてバイパスして、DBに対してクエリを実行します。

public

random(): fn

ダイアレクトに基づいてランダムなfnを取得します。

public

async set(variables: object, options: object): Promise

環境変数またはユーザー変数を設定するクエリを実行します。

public

async showAllSchemas(options: object): Promise

定義されたすべてのスキーマを表示します。

public

async sync(options: object): Promise

定義されたすべてのモデルをDBに同期します。

public

async transaction(options: object, autoCallback: Function): Promise

トランザクションを開始します。

public

async truncate(options: object): Promise

sequelizeモデルで定義されたすべてのテーブルを切り捨てます。

静的パブリックメソッド

public static and(args: ...string | object): and since v2.0.0-dev3 source

ANDクエリ

パラメータ

名前属性説明
args ...string | object

各引数は AND で結合されます。

戻り値

and

参照

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

DBの列を表すオブジェクトを作成します。これにより、クエリ内で別の列を参照できます。これは、`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`を使用する必要があります。

パラメータ

名前属性説明
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

postgres/sqlite/mysqlのJSONデータ型に対するネストされたwhere条件を表すオブジェクトを作成します。

パラメータ

名前属性説明
conditionsOrPath string | object

文字列/数値または他のネストされたハッシュを含むハッシュ、ドット表記を使用した文字列、またはpostgres/sqlite/mysqlのjson構文を使用した文字列。

value string | number | boolean
  • オプション

比較するオプションの値。「<jsonパス> = '<値>'」の形式の文字列を生成します。

戻り値

json

参照

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

リテラルを表すオブジェクトを作成します。つまり、エスケープされないものです。

パラメータ

名前属性説明
val any

リテラル値

戻り値

リテラル

public static or(args: ...string | object): or since v2.0.0-dev3 source

ORクエリ。

パラメータ

名前属性説明
args ...string | object

各引数は OR で結合されます。

戻り値

or

参照

public static useCLS(ns: object): object source

SequelizeでCLS(Continuation Local Storage)を使用します。Continuation Local Storageを使用すると、トランザクションコールバック内のすべてのクエリは、トランザクションオブジェクトを自動的に受信します。

提供されるCLS名前空間は、`Sequelize._cls`として保存されます。

パラメータ

名前属性説明
ns object

CLS名前空間

戻り値

object

Sequelizeコンストラクター

public static where(attr: object, comparator: symbol, logic: string | object): * since v2.0.0-dev3 source

attr = condition を指定する方法。

attrは、`Model.rawAttributes`(たとえば、`Model.rawAttributes.id`または`Model.rawAttributes.name`)から取得したオブジェクトにすることができます。属性はモデル定義で定義する必要があります。属性は、sequelizeユーティリティ関数(`sequelize.fn`、`sequelize.col`など)のいずれかからのオブジェクトにすることもできます。

文字列属性の場合は、通常の `{where: {attr: something}}` 構文を使用します。文字列をエスケープしたくない場合は、`sequelize.literal`を使用します。

パラメータ

名前属性説明
attr object

属性。`Model.rawAttributes`の属性オブジェクト、または`sequelize.fn`のインスタンスなどのsequelizeオブジェクトのいずれかになります。単純な文字列属性の場合は、POJO構文を使用します。

comparator symbol
  • オプション
  • デフォルト: 'Op.eq'

演算子

logic string | object

条件。単純な型、またはさらに条件(`or`、`and`、`.literal`など)にすることができます。

戻り値

*

参照

パブリックコンストラクター

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

データベース名、ユーザー名、パスワードを指定してSequelizeをインスタンス化します。

パラメータ

名前属性説明
database string
  • オプション

データベースの名前

username string
  • オプション
  • デフォルト:null

データベースに対する認証に使用されるユーザー名。

password string
  • オプション
  • デフォルト:null

データベースに対する認証に使用されるパスワード。SQLiteのSQLCipher暗号化をサポートします。

options object
  • オプション
  • デフォルト: {}

オプションを含むオブジェクト。

options.host string
  • オプション
  • デフォルト: 'localhost'

リレーショナルデータベースのホスト。

options.port number
  • オプション

リレーショナルデータベースのポート。

options.username string
  • オプション
  • デフォルト:null

データベースに対する認証に使用されるユーザー名。

options.password string
  • オプション
  • デフォルト:null

データベースに対する認証に使用されるパスワード。

options.database string
  • オプション
  • デフォルト:null

データベースの名前。

options.dialect string
  • オプション

接続しているデータベースのダイアレクト。mysql、postgres、sqlite、db2、mariadb、mssqlのいずれかです。

options.dialectModule string
  • オプション
  • デフォルト:null

指定された場合は、このダイアレクトライブラリを使用します。たとえば、pgデータベースに接続するときにpgの代わりにpg.jsを使用する場合は、ここに「require("pg.js")」を指定する必要があります。

options.dialectModulePath string
  • オプション
  • デフォルト:null

指定された場合は、このパスからダイアレクトライブラリをロードします。たとえば、pgデータベースに接続するときにpgの代わりにpg.jsを使用する場合は、ここに「/path/to/pg.js」を指定する必要があります。

options.dialectOptions object
  • オプション

追加のオプションのオブジェクト。接続ライブラリに直接渡されます。

options.storage string
  • オプション

sqliteでのみ使用されます。デフォルトは ':memory:'

options.protocol string
  • オプション
  • デフォルト: 'tcp'

リレーショナルデータベースのプロトコル。

options.define object
  • オプション
  • デフォルト: {}

モデル定義のデフォルトオプション。Model.initを参照してください。

options.query object
  • オプション
  • デフォルト: {}

sequelize.queryのデフォルトオプション

options.schema string
  • オプション
  • デフォルト:null

使用するスキーマ

options.set object
  • オプション
  • デフォルト: {}

sequelize.setのデフォルトオプション

options.sync object
  • オプション
  • デフォルト: {}

sequelize.syncのデフォルトオプション

options.timezone string
  • オプション
  • デフォルト: '+00:00'

データベースからJavaScriptの日付に日付を変換するときに使用されるタイムゾーン。タイムゾーンは、サーバーに接続するときにSET TIMEZONEを設定するためにも使用され、NOW、CURRENT_TIMESTAMP、およびその他の時間関連関数の結果が正しいタイムゾーンになるようにします。最適なクロスプラットフォームパフォーマンスを得るには、+/-HH:MM形式を使用します。moment.jsで使用されるタイムゾーンの文字列バージョン(例: 'America/Los_Angeles')も受け入れます。これは、夏時間の変更をキャプチャするのに役立ちます。

options.clientMinMessages string | boolean
  • オプション
  • デフォルト: 'warning'

(非推奨) PostgreSQLの`client_min_messages`セッションパラメータ。データベースのデフォルトを上書きしない場合は、`false`に設定します。

options.standardConformingStrings boolean
  • オプション
  • デフォルト:true

PostgreSQLの`standard_conforming_strings`セッションパラメータ。オプションを設定しない場合は、`false`に設定します。警告:これをfalseに設定すると脆弱性が露呈する可能性があり、推奨されません!

options.logging Function
  • オプション
  • デフォルト:console.log

Sequelizeが何かをログに記録するたびに実行される関数。関数は複数のパラメータを受け取ることができますが、最初のパラメータのみが`console.log`によって出力されます。すべての値を印刷するには、`(...msg) => console.log(msg)`を使用します。

options.benchmark boolean
  • オプション
  • デフォルト:false

クエリ実行時間をミリ秒単位でロギング関数(options.logging)の第2引数として渡します。

options.omitNull boolean
  • オプション
  • デフォルト:false

CREATE/UPDATE SQLクエリにnull値を値として渡すかどうかを定義するフラグです。

options.native boolean
  • オプション
  • デフォルト:false

ネイティブライブラリを使用するかどうかを定義するフラグです。現在、postgresでのみ有効です。

options.ssl boolean
  • オプション
  • デフォルト: undefined

接続をSSL経由で行うかどうかを定義するフラグです。

options.replication boolean
  • オプション
  • デフォルト:false

読み取り/書き込みレプリケーションを使用します。レプリケーションを有効にするには、readとwriteの2つのプロパティを持つオブジェクトを渡します。writeはオブジェクト(書き込みを処理する単一のサーバー)である必要があり、readはオブジェクトの配列(読み取りを処理する複数のサーバー)である必要があります。各読み取り/書き込みサーバーは、次のプロパティを持つことができます。hostportusernamepassworddatabase

options.pool object
  • オプション

Sequelize接続プール構成。

options.pool.max number
  • オプション
  • デフォルト: 5

プール内の最大接続数。

options.pool.min number
  • オプション
  • デフォルト: 0

プール内の最小接続数。

options.pool.idle number
  • オプション
  • デフォルト: 10000

接続が解放されるまでにアイドル状態を維持できる最大時間(ミリ秒単位)。

options.pool.acquire number
  • オプション
  • デフォルト: 60000

プールがエラーをスローする前に接続を取得しようとする最大時間(ミリ秒単位)。

options.pool.evict number
  • オプション
  • デフォルト: 1000

sequelize-poolがアイドル接続を削除するまでの時間間隔(ミリ秒単位)。

options.pool.validate Function
  • オプション

接続を検証する関数。クライアントとともに呼び出されます。デフォルトの関数は、クライアントがオブジェクトであること、およびその状態が切断されていないことを確認します。

options.pool.maxUses number
  • オプション
  • デフォルト: Infinity

接続を交換のために破棄するまでに使用できる回数。クラスターのリバランスに使用されます。

options.quoteIdentifiers boolean
  • オプション
  • デフォルト:true

Postgresでテーブル名と属性を大文字と小文字を区別しないようにし、それらの二重引用符をスキップするには、falseに設定します。警告: これをfalseに設定すると、脆弱性が露呈する可能性があり、推奨されません。

options.transactionType string
  • オプション
  • デフォルト: 'DEFERRED'

デフォルトのトランザクションタイプを設定します。利用可能なオプションについては、Sequelize.Transaction.TYPESを参照してください。Sqliteのみ。

options.isolationLevel string
  • オプション

デフォルトのトランザクション分離レベルを設定します。利用可能なオプションについては、Sequelize.Transaction.ISOLATION_LEVELSを参照してください。

options.retry object
  • オプション

クエリを自動的に再試行するタイミングを制御するフラグのセット。retry-as-promisedのすべてのオプションを受け入れます。

options.retry.match 配列
  • オプション

エラーがこれらの文字列のいずれかに一致する場合にのみ、クエリを再試行します。

options.retry.max number
  • オプション

失敗したクエリが自動的に再試行される回数。SQL_BUSYエラーでの再試行を無効にするには、0に設定します。

options.typeValidation boolean
  • オプション
  • デフォルト:false

挿入および更新時、およびwhere句を使用した選択時に組み込み型バリデーターを実行します。たとえば、整数フィールドに渡される引数が整数のようなものであることを検証します。

options.operatorsAliases object
  • オプション

文字列ベースの演算子エイリアス。エイリアス演算子のセットを制限するには、オブジェクトを渡します。

options.hooks object
  • オプション

特定のライフサイクルイベントの前後に呼び出されるグローバルフック関数のオブジェクト。グローバルフックは、同じイベントに対して定義されたモデル固有のフックの後で実行されます(リストについては、Sequelize.Model.init()を参照してください)。さらに、beforeConnect()afterConnect()beforeDisconnect()、およびafterDisconnect()フックをここで定義できます。

options.minifyAliases boolean
  • オプション
  • デフォルト:false

エイリアスを最小化する必要があるかどうかを定義するフラグ(主にPostgresの64文字のエイリアス文字制限を回避するのに役立ちます)。

options.logQueryParameters boolean
  • オプション
  • デフォルト: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,

  // A flag that defines if connection should be over ssl or not
  // - default: undefined
  ssl: 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 async authenticate(options: object): Promise source

認証を試みて接続をテストします。SELECT 1+1 AS resultクエリを実行します。

パラメータ

名前属性説明
options object
  • オプション
  • デフォルト: {}

クエリオプション

戻り値

Promise

public close(): Promise source

このsequelizeインスタンスで使用されているすべての接続を閉じ、インスタンスがガベージコレクションされるようにすべての参照を解放します。

通常、これはプロセス終了時に行われるため、複数のインスタンスを作成し、それらの一部をガベージコレクションする場合は、このメソッドを呼び出すだけで済みます。

戻り値

Promise

public async createSchema(schema: string, options: object): Promise source

新しいデータベーススキーマを作成します。

注意: これは、postgresの用語でのスキーマであり、データベーステーブルではありません。mysqlとsqliteでは、このコマンドは何もしません。

パラメータ

名前属性説明
スキーマ string

スキーマの名前

options object
  • オプション
  • デフォルト: {}

クエリオプション

options.logging boolean | Function
  • オプション

SQLクエリをログに記録する関数、またはログ記録を行わない場合はfalse。

戻り値

Promise

参照

public define(modelName: string, attributes: object, options: object): Model source

データベースのテーブルを表す新しいモデルを定義します。

テーブルの列は、2番目の引数として渡されるオブジェクトによって定義されます。オブジェクトの各キーは列を表します。

パラメータ

名前属性説明
modelName string

モデルの名前。モデルは、この名前でsequelize.modelsに保存されます。

属性 object

各属性がテーブルの列であるオブジェクト。Model.initを参照してください。

options object
  • オプション

これらのオプションは、Sequelizeコンストラクターに提供されるデフォルトの定義オプションとマージされ、Model.init()に渡されます。

戻り値

モデル

新しく定義されたモデル

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

参照

  • optionsオブジェクトとattributesオブジェクトの詳細については、Model.initを参照してください。
  • モデルの基本ガイド

public async drop(options: object): Promise source

このSequelizeインスタンスで定義されたすべてのテーブルを削除します。これは、各モデルでModel.dropを呼び出すことで行われます。

パラメータ

名前属性説明
options object
  • オプション

Model.dropの各呼び出しに渡されるオプション

options.logging boolean | Function
  • オプション

SQLクエリをログに記録する関数、またはログ記録を行わない場合はfalse。

戻り値

Promise

参照

  • オプションについては、Model.dropを参照してください。

public async dropAllSchemas(options: object): Promise source

すべてのスキーマを削除します。

注意: これは、postgresの用語でのスキーマであり、データベーステーブルではありません。mysqlとsqliteでは、これはすべてのテーブルを削除することと同等です。

パラメータ

名前属性説明
options object
  • オプション
  • デフォルト: {}

クエリオプション

options.logging boolean | Function
  • オプション

SQLクエリをログに記録する関数、またはログ記録を行わない場合はfalse。

戻り値

Promise

public async dropSchema(schema: string, options: object): Promise source

単一のスキーマを削除します。

注意: これは、postgresの用語でのスキーマであり、データベーステーブルではありません。mysqlとsqliteでは、これはスキーマ名と一致するテーブルを削除します。

パラメータ

名前属性説明
スキーマ 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 isDefined(modelName: string): boolean source

指定された名前のモデルが定義されているかどうかを確認します。

パラメータ

名前属性説明
modelName string

Sequelize.defineで定義されたモデルの名前

戻り値

boolean

モデルが既に定義されている場合はtrueを返し、そうでない場合はfalseを返します。

public model(modelName: string): Model source

すでに定義されているモデルを取得します。

パラメータ

名前属性説明
modelName string

Sequelize.defineで定義されたモデルの名前

戻り値

モデル

指定されたモデル

例外

*

モデルが定義されていない場合(つまり、sequelize#isDefinedがfalseを返す場合)、エラーをスローします。

public async query(sql: string, options: object): Promise source

必要に応じてSequelizeの機能をすべてバイパスして、DBに対してクエリを実行します。

デフォルトでは、この関数は2つの引数を返します。結果の配列と、影響を受けた行数などを含むメタデータオブジェクトです。

メタデータが必要ないクエリ、たとえばSELECTクエリなどを実行している場合は、クエリタイプを渡して、sequelizeに結果をフォーマットさせることができます。

const [results, metadata] = await sequelize.query('SELECT...'); // Raw query - use array destructuring

const results = await sequelize.query('SELECT...', { type: sequelize.QueryTypes.SELECT }); // SELECT query - no destructuring

パラメータ

名前属性説明
sql string
options object
  • オプション
  • デフォルト: {}

クエリオプション。

options.raw boolean
  • オプション

trueの場合、sequelizeはクエリの結果をフォーマットしたり、結果からモデルのインスタンスを作成したりしようとしません。

options.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形式の名前付きバインドパラメーターのオブジェクト、またはSQL内の$1, $2, ...を置換する名前のないバインドパラメーターの配列のいずれか。

options.useMaster boolean
  • オプション
  • デフォルト:false

クエリタイプに関係なく、クエリが書き込みプールを使用するように強制します。

options.logging Function
  • オプション
  • デフォルト:false

SQLをログに記録するためにクエリの実行中に実行される関数。

options.instance モデル
  • オプション

クエリ結果を構築するために使用されるモデルのsequelizeモデルインスタンス。

options.model typeof Model
  • オプション

返されたモデルインスタンスを構築するために使用されるsequelizeモデル。

options.retry object
  • オプション

クエリを自動的に再試行するタイミングを制御するフラグのセット。retry-as-promisedのすべてのオプションを受け入れます。

options.retry.match 配列
  • オプション

エラーがこれらの文字列のいずれかに一致する場合にのみ、クエリを再試行します。

options.retry.max 整数
  • オプション

失敗したクエリが自動的にリトライされる回数。

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クエリタイプの場合、返されたフィールドを任意の名前でマップします。

options.rawErrors boolean
  • オプション
  • デフォルト:false

trueに設定すると、基になる接続/データベースライブラリからのエラーが変更されずに、フォーマットされていない状態で伝播されます。それ以外の場合、デフォルトの動作(= false)では、エラーはsequelize.errors.BaseErrorオブジェクトとして再解釈されます。

戻り値

Promise

参照

  • インスタンスオプションの詳細については、Model.buildを参照してください。

public random(): fn source

ダイアレクトに基づいてランダムなfnを取得します。

戻り値

fn

public async set(variables: object, options: object): Promise source

環境変数またはユーザー変数を設定するクエリを実行します。変数は接続ごとに設定されるため、この関数にはトランザクションが必要です。MySQLまたはMariaDBでのみ動作します。

パラメータ

名前属性説明
variables object

複数の変数を持つオブジェクト。

options object
  • オプション

クエリオプション。

options.transaction トランザクション
  • オプション

クエリが実行されるトランザクション

戻り値

Promise

public async showAllSchemas(options: object): Promise source

定義されたすべてのスキーマを表示します。

注:これは、Postgresの言葉の意味でのスキーマであり、データベーステーブルではありません。mysqlとsqliteでは、これはすべてのテーブルを表示します。

パラメータ

名前属性説明
options object
  • オプション
  • デフォルト: {}

クエリオプション

options.logging boolean | Function
  • オプション

SQLクエリをログに記録する関数、またはログ記録を行わない場合はfalse。

戻り値

Promise

public async sync(options: object): Promise source

定義されたすべてのモデルをDBに同期します。

パラメータ

名前属性説明
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 | object
  • オプション
  • デフォルト:false

モデルに合うようにテーブルを変更します。追加の設定を行うには、オブジェクトを提供します。本番環境での使用はお勧めしません。さらに設定されていない場合、モデルで削除された列または型が変更された列のデータが削除されます。

options.alter.drop boolean
  • オプション
  • デフォルト:true

falseに設定した場合、テーブルの変更中にDROPステートメントが実行されないようにします。

戻り値

Promise

public async 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.readOnly boolean
  • オプション

このトランザクションがデータの読み取りにのみ使用されるかどうか。sequelizeが読み取りレプリケーションサーバーの使用を許可するかどうかを判断するために使用されます。

options.logging Function
  • オプション
  • デフォルト:false

SQLをログに記録するためにクエリの実行中に実行される関数。

autoCallback Function
  • オプション

コールバックはトランザクションオブジェクトとともに呼び出され、Promiseを返す必要があります。Promiseが解決されると、トランザクションがコミットされます。Promiseが拒否されると、トランザクションがロールバックされます。

戻り値

Promise


try {
  const transaction = await sequelize.transaction();
  const user = await User.findOne(..., { transaction });
  await user.update(..., { transaction });
  await transaction.commit();
} catch {
  await transaction.rollback()
}
Promiseチェーンの解決に基づいて自動的にコミットまたはロールバックする構文もサポートされています。

try {
  await sequelize.transaction(transaction => { // Note that we pass a callback rather than awaiting the call with no arguments
    const user = await User.findOne(..., {transaction});
    await user.update(..., {transaction});
  });
  // Committed
} catch(err) {
  // Rolled back
  console.error(err);
}
CLSを有効にするには、プロジェクトに追加し、名前空間を作成して、sequelizeコンストラクターに設定します。

const cls = require('cls-hooked');
const namespace = cls.createNamespace('....');
const Sequelize = require('sequelize');
Sequelize.useCLS(namespace);

// Note, that CLS is enabled for all sequelize instances, and all instances will share the same namespace

public async truncate(options: object): Promise source

sequelizeモデルを介して定義されたすべてのテーブルを切り捨てます。これは、各モデルでModel.truncate()を呼び出すことで行われます。

パラメータ

名前属性説明
options object
  • オプション

truncateに加えてModel.destroyに渡されるオプション

options.logging boolean | Function
  • オプション

SQLクエリをログに記録する関数、またはログ記録を行わない場合はfalse。

戻り値

Promise

参照