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

QueryInterface

Sequelizeがすべてのデータベースと通信するために使用するインターフェース

メソッドの概要

公開メソッド
public

非同期 addColumn(table: 文字列、key: 文字列、attribute: オブジェクト、options: オブジェクト): Promise

テーブルに新しい列を追加します。

public

非同期 addConstraint(tableName: 文字列、options: オブジェクト): Promise

テーブルに制約を追加します。

public

非同期 addIndex(tableName: 文字列 | オブジェクト、attributes: 配列、options: オブジェクト、rawTablename: 文字列): Promise

列にインデックスを追加します。

public

非同期 bulkDelete(tableName: 文字列、where: オブジェクト、options: オブジェクト、model: Model): Promise

テーブルから複数のレコードを削除します。

public

非同期 bulkInsert(tableName: 文字列、records: 配列、options: オブジェクト、attributes: オブジェクト): Promise

テーブルに複数のレコードを挿入します。

public

非同期 bulkUpdate(tableName: 文字列、values: オブジェクト、identifier: オブジェクト、options: オブジェクト、attributes: オブジェクト): Promise

テーブルの複数のレコードを更新します。

public

非同期 changeColumn(tableName: 文字列、attributeName: 文字列、dataTypeOrOptions: オブジェクト、options: オブジェクト): *

列の定義を変更します。

public

非同期 createDatabase(database: 文字列、options: オブジェクト): Promise

データベースを作成します。

public

非同期 createFunction(functionName: 文字列、params: 配列、returnType: 文字列、language: 文字列、body: 文字列、optionsArray: 配列、options: オブジェクト): Promise

SQL関数を生成します。

public

非同期 createSchema(schema: 文字列、options: オブジェクト): Promise

スキーマを作成します。

public

非同期 createTable(tableName: 文字列、attributes: オブジェクト、options: オブジェクト、model: Model): Promise

指定された属性セットを持つテーブルを作成します。

public

テーブル構造を記述します。

public

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

public

データベースからすべてのテーブルを削除します。

public

非同期 dropDatabase(database: 文字列、options: オブジェクト): Promise

データベースを削除します。

public

非同期 dropFunction(functionName: 文字列、params: 配列、options: オブジェクト): Promise

SQL関数を削除します。

public

非同期 dropSchema(schema: 文字列、options: オブジェクト): Promise

スキーマを削除します。

public

非同期 dropTable(tableName: 文字列、options: オブジェクト): Promise

データベースからテーブルを削除します。

public

非同期 getForeignKeyReferencesForTable(tableName: 文字列、options: オブジェクト): *

テーブルの外部キー参照の詳細を取得します。

public

非同期 getForeignKeysForTables(tableNames: 文字列[]、options: オブジェクト): Promise

要求されたテーブルのすべての外部キー制約を返します。

public

識別子のリストを「.」で分割し、各部分を引用符で囲みます。

public

識別子のリストを「.」で分割し、各部分を引用符で囲みます。

public

非同期 removeColumn(tableName: 文字列, attributeName: 文字列, options: オブジェクト): *

テーブルから列を削除します。

public

非同期 removeConstraint(tableName: 文字列, constraintName: 文字列, options: オブジェクト): *

テーブルから制約を削除します。

public

非同期 removeIndex(tableName: 文字列, indexNameOrAttributes: 文字列 | 文字列[], options: オブジェクト): Promise

テーブルから既に存在するインデックスを削除します。

public

非同期 renameColumn(tableName: 文字列, attrNameBefore: 文字列, attrNameAfter: 文字列, options: オブジェクト): Promise

列の名前を変更します。

public

非同期 renameFunction(oldFunctionName: 文字列, params: 配列, newFunctionName: 文字列, options: オブジェクト): Promise

SQL関数の名前を変更します。

public

非同期 renameTable(before: 文字列, after: 文字列, options: オブジェクト): Promise

テーブルの名前を変更します。

public

すべてのスキーマを表示します。

public

非同期 tableExists(tableName: TableName, options: QueryOptions): Promise<真偽値>

データベースにテーブルが存在する場合はtrue、存在しない場合はfalseを返すPromiseを返します。

public

非同期 upsert(tableName: 文字列, insertValues: オブジェクト, updateValues: オブジェクト, where: オブジェクト, options: オブジェクト): Promise<真偽値, ?数値>

Upsert

公開メソッド

公開 非同期 addColumn(table: 文字列, key: 文字列, attribute: オブジェクト, options: オブジェクト): Promise ソース

テーブルに新しい列を追加します。

queryInterface.addColumn('tableA', 'columnC', Sequelize.STRING, {
   after: 'columnB' // after option is only supported by MySQL
});

パラメータ

名前属性説明
table 文字列

列を追加するテーブル

key 文字列

列名

attribute オブジェクト

属性定義

options オブジェクト
  • オプション

クエリオプション

戻り値

Promise

公開 非同期 addConstraint(tableName: 文字列, options: オブジェクト): Promise ソース

テーブルに制約を追加します。

使用可能な制約

  • UNIQUE
  • DEFAULT (MSSQLのみ)
  • CHECK (MySQL - データベースエンジンによって無視されます)
  • FOREIGN KEY
  • PRIMARY KEY

パラメータ

名前属性説明
tableName 文字列

制約を追加するテーブル名

options オブジェクト

制約名、型などを定義するオブジェクト

options.type 文字列

制約の型。使用可能な制約のいずれかの値(大文字と小文字は区別されません)

options.fields 配列

制約を適用する列名の配列

options.name 文字列
  • オプション

制約の名前。指定されていない場合、Sequelizeは制約の種類、テーブル、列名に基づいて名前付き制約を自動的に作成します。

options.defaultValue 文字列
  • オプション

デフォルト制約の値

options.where オブジェクト
  • オプション

CHECK制約のWHERE句/式

options.references オブジェクト
  • オプション

外部キー制約を作成するためのターゲットテーブル、列名を指定するオブジェクト

options.references.table 文字列
  • オプション

ターゲットテーブル名

options.references.field 文字列
  • オプション

ターゲット列名

options.references.fields 文字列
  • オプション

複合主キーのターゲット列名。options.fieldsの列名の順序と一致する必要があります。

options.deferrable 文字列
  • オプション

制約を遅延するか、すぐにチェックするかを設定します。Sequelize.Deferrableを参照してください。PostgreSQLのみ

戻り値

Promise

UNIQUE
queryInterface.addConstraint('Users', {
  fields: ['email'],
  type: 'unique',
  name: 'custom_unique_constraint_name'
});
CHECK
queryInterface.addConstraint('Users', {
  fields: ['roles'],
  type: 'check',
  where: {
     roles: ['user', 'admin', 'moderator', 'guest']
  }
});
デフォルト - MSSQLのみ
queryInterface.addConstraint('Users', {
   fields: ['roles'],
   type: 'default',
   defaultValue: 'guest'
});
主キー
queryInterface.addConstraint('Users', {
   fields: ['username'],
   type: 'primary key',
   name: 'custom_primary_constraint_name'
});
外部キー
queryInterface.addConstraint('Posts', {
  fields: ['username'],
  type: 'foreign key',
  name: 'custom_fkey_constraint_name',
  references: { //Required field
    table: 'target_table_name',
    field: 'target_column_name'
  },
  onDelete: 'cascade',
  onUpdate: 'cascade'
});
複合外部キー
queryInterface.addConstraint('TableName', {
  fields: ['source_column_name', 'other_source_column_name'],
  type: 'foreign key',
  name: 'custom_fkey_constraint_name',
  references: { //Required field
    table: 'target_table_name',
    fields: ['target_column_name', 'other_target_column_name']
  },
  onDelete: 'cascade',
  onUpdate: 'cascade'
});

公開 非同期 addIndex(tableName: 文字列 | オブジェクト, attributes: 配列, options: オブジェクト, rawTablename: 文字列): Promise ソース

列にインデックスを追加します。

パラメータ

名前属性説明
tableName 文字列 | オブジェクト

インデックスを追加するテーブル名。スキーマを含むオブジェクトにすることもできます。

attributes 配列
  • オプション

options.fieldsの代わりに使用します。インデックスを追加する属性のリスト

options オブジェクト

インデックスオプション

options.fields 配列

インデックスを追加する属性のリスト

options.concurrently 真偽値
  • オプション

インデックスの作成中に他の操作を実行するためにCONCURRENTを渡します。

options.unique 真偽値
  • オプション

一意インデックスを作成します。

options.using 文字列
  • オプション

GINインデックスに役立ちます。

options.operator 文字列
  • オプション

インデックス演算子

options.type 文字列
  • オプション

インデックスの型。使用可能なオプションはUNIQUE|FULLTEXT|SPATIALです。

options.name 文字列
  • オプション

インデックスの名前。デフォルトは<table>_<attr1>_<attr2>です。

options.where オブジェクト
  • オプション

部分インデックスのWHERE条件

rawTablename 文字列
  • オプション

テーブル名。これは下位互換性のためだけです。

戻り値

Promise

公開 非同期 bulkDelete(tableName: 文字列, where: オブジェクト, options: オブジェクト, model: Model): Promise ソース

テーブルから複数のレコードを削除します。

パラメータ

名前属性説明
tableName 文字列

レコードを削除するテーブル名

where オブジェクト

削除するレコードを検索するためのWHERE条件

options オブジェクト
  • オプション

options

options.truncate 真偽値
  • オプション

TRUNCATEテーブルコマンドを使用します。

options.cascade 真偽値
  • オプション
  • デフォルト: false

TRUNCATEと組み合わせてのみ使用されます。指定されたテーブル、またはCASCADEによってグループに追加されたテーブルへの外部キー参照を持つすべてのテーブルを切り捨てます。

options.restartIdentity 真偽値
  • オプション
  • デフォルト: false

TRUNCATEと組み合わせてのみ使用されます。切り捨てられたテーブルの列が所有するシーケンスを自動的に再起動します。

model Model
  • オプション

Model

戻り値

Promise

公開 非同期 bulkInsert(tableName: 文字列, records: 配列, options: オブジェクト, attributes: オブジェクト): Promise ソース

テーブルに複数のレコードを挿入します。

パラメータ

名前属性説明
tableName 文字列

レコードを挿入するテーブル名

records 配列

挿入するレコードのリスト

options オブジェクト

様々なオプション。Model.bulkCreateのオプションを参照してください。

attributes オブジェクト

フィールド名によってマッピングされた様々な属性

戻り値

Promise

queryInterface.bulkInsert('roles', [{
   label: 'user',
   createdAt: new Date(),
   updatedAt: new Date()
 }, {
   label: 'admin',
   createdAt: new Date(),
   updatedAt: new Date()
 }]);

公開 非同期 bulkUpdate(tableName: 文字列, values: オブジェクト, identifier: オブジェクト, options: オブジェクト, attributes: オブジェクト): Promise ソース

テーブルの複数のレコードを更新します。

パラメータ

名前属性説明
tableName 文字列

更新するテーブル名

values オブジェクト

挿入する値。フィールド名にマップされます。

identifier オブジェクト

条件を含むハッシュ、または整数としてのID、または条件を含む文字列

options オブジェクト
  • オプション

様々なオプション。Model.bulkCreateのオプションを参照してください。

attributes オブジェクト
  • オプション

SQL方言でサポートされている場合の戻り値オブジェクトの属性

戻り値

Promise

queryInterface.bulkUpdate('roles', {
    label: 'admin',
  }, {
    userType: 3,
  },
);

public 非同期 changeColumn(tableName: 文字列, attributeName: 文字列, dataTypeOrOptions: オブジェクト, options: オブジェクト): * ソース

列の定義を変更します。

パラメータ

名前属性説明
tableName 文字列

変更元のテーブル名

attributeName 文字列

列名

dataTypeOrOptions オブジェクト

新しい列の属性定義

options オブジェクト
  • オプション

クエリオプション

戻り値

*

public 非同期 createDatabase(database: 文字列, options: オブジェクト): Promise ソース

データベースを作成します。

パラメータ

名前属性説明
database 文字列

作成するデータベース名

options オブジェクト
  • オプション

クエリオプション

options.charset 文字列
  • オプション

データベースのデフォルト文字セット(MySQLのみ)

options.collate 文字列
  • オプション

データベースのデフォルト照合順序

options.encoding 文字列
  • オプション

データベースのデフォルト文字セット(PostgreSQLのみ)

options.ctype 文字列
  • オプション

データベースの文字分類(PostgreSQLのみ)

options.template 文字列
  • オプション

新しいデータベースの作成元となるテンプレート名(PostgreSQLのみ)

戻り値

Promise

public 非同期 createFunction(functionName: 文字列, params: 配列, returnType: 文字列, language: 文字列, body: 文字列, optionsArray: 配列, options: オブジェクト): Promise ソース

SQL関数を生成します。

パラメータ

名前属性説明
functionName 文字列

作成するSQL関数の名前

params 配列

SQL関数で宣言されたパラメータのリスト

returnType 文字列

関数の戻り値のSQL型

language 文字列

関数が実装されている言語の名前

body 文字列

関数のソースコード

optionsArray 配列

作成のための追加オプション

options オブジェクト
  • オプション

クエリオプション

options.force 真偽値

forceがtrueの場合、同じパラメータを持つ既存の関数は置き換えられます。PostgreSQLの場合、`CREATE FUNCTION`ではなく`CREATE OR REPLACE FUNCTION`が使用されます。デフォルトはfalseです。

options.variables 配列<オブジェクト>

宣言された変数のリスト。各変数は、文字列フィールド`type`と`name`を持つオブジェクトで、オプションで`default`フィールドも持つことができます。

戻り値

Promise

queryInterface.createFunction(
  'someFunction',
  [
    {type: 'integer', name: 'param', direction: 'IN'}
  ],
  'integer',
  'plpgsql',
  'RETURN param + 1;',
  [
    'IMMUTABLE',
    'LEAKPROOF'
  ],
  {
   variables:
     [
       {type: 'integer', name: 'myVar', default: 100}
     ],
     force: true
  };
);

public 非同期 createSchema(schema: 文字列, options: オブジェクト): Promise ソース

スキーマを作成します。

パラメータ

名前属性説明
schema 文字列

作成するスキーマ名

options オブジェクト
  • オプション

クエリオプション

戻り値

Promise

public 非同期 createTable(tableName: 文字列, attributes: オブジェクト, options: オブジェクト, model: Model): Promise ソース

指定された属性セットを持つテーブルを作成します。

queryInterface.createTable(
  'nameOfTheNewTable',
  {
    id: {
      type: Sequelize.INTEGER,
      primaryKey: true,
      autoIncrement: true
    },
    createdAt: {
      type: Sequelize.DATE
    },
    updatedAt: {
      type: Sequelize.DATE
    },
    attr1: Sequelize.STRING,
    attr2: Sequelize.INTEGER,
    attr3: {
      type: Sequelize.BOOLEAN,
      defaultValue: false,
      allowNull: false
    },
    //foreign key usage
    attr4: {
      type: Sequelize.INTEGER,
      references: {
        model: 'another_table_name',
        key: 'id'
      },
      onUpdate: 'cascade',
      onDelete: 'cascade'
    }
  },
  {
    engine: 'MYISAM',    // default: 'InnoDB'
    charset: 'latin1',   // default: null
    schema: 'public',    // default: public, PostgreSQL only.
    comment: 'my table', // comment for table
    collate: 'latin1_danish_ci' // collation, MYSQL only
  }
)

パラメータ

名前属性説明
tableName 文字列

作成するテーブル名

attributes オブジェクト

作成するテーブル属性のリストを表すオブジェクト

options オブジェクト
  • オプション

テーブル作成およびクエリオプション

model Model
  • オプション

モデルクラス

戻り値

Promise

public 非同期 describeTable(tableName: 文字列, options: オブジェクト): Promise<オブジェクト> ソース

テーブル構造を記述します。

このメソッドは、テーブル内のすべての属性に関する情報を格納したハッシュの配列を返します。

{
   name: {
     type:         'VARCHAR(255)', // this will be 'CHARACTER VARYING' for pg!
     allowNull:    true,
     defaultValue: null
   },
   isBetaMember: {
     type:         'TINYINT(1)', // this will be 'BOOLEAN' for pg!
     allowNull:    false,
     defaultValue: false
   }
}

パラメータ

名前属性説明
tableName 文字列

テーブル名

options オブジェクト
  • オプション

クエリオプション

public 非同期 dropAllSchemas(options: オブジェクト): Promise ソース

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

パラメータ

名前属性説明
options オブジェクト
  • オプション

クエリオプション

戻り値

Promise

public 非同期 dropAllTables(options: オブジェクト): Promise ソース

データベースからすべてのテーブルを削除します。

パラメータ

名前属性説明
options オブジェクト
  • オプション

クエリオプション

options.skip 配列
  • オプション

スキップするテーブルのリスト

戻り値

Promise

public 非同期 dropDatabase(database: 文字列, options: オブジェクト): Promise ソース

データベースを削除します。

パラメータ

名前属性説明
database 文字列

削除するデータベース名

options オブジェクト
  • オプション

クエリオプション

戻り値

Promise

public 非同期 dropFunction(functionName: 文字列, params: 配列, options: オブジェクト): Promise ソース

SQL関数を削除します。

パラメータ

名前属性説明
functionName 文字列

削除するSQL関数の名前

params 配列

SQL関数で宣言されたパラメータのリスト

options オブジェクト
  • オプション

クエリオプション

戻り値

Promise

queryInterface.dropFunction(
  'someFunction',
  [
    {type: 'varchar', name: 'param1', direction: 'IN'},
    {type: 'integer', name: 'param2', direction: 'INOUT'}
  ]
);

public 非同期 dropSchema(schema: 文字列, options: オブジェクト): Promise ソース

スキーマを削除します。

パラメータ

名前属性説明
schema 文字列

削除するスキーマ名

options オブジェクト
  • オプション

クエリオプション

戻り値

Promise

public 非同期 dropTable(tableName: 文字列, options: オブジェクト): Promise ソース

データベースからテーブルを削除します。

パラメータ

名前属性説明
tableName 文字列

削除するテーブル名

options オブジェクト

クエリオプション

戻り値

Promise

public 非同期 getForeignKeyReferencesForTable(tableName: 文字列, options: オブジェクト): * ソース

テーブルの外部キー参照の詳細を取得します。

これらの詳細には、constraintSchema、constraintName、constraintCatalog、tableCatalog、tableSchema、tableName、columnName、referencedTableCatalog、referencedTableCatalog、referencedTableSchema、referencedTableName、referencedColumnNameが含まれます。ご注意:SQLiteの場合は制約情報は返されません。

パラメータ

名前属性説明
tableName 文字列

テーブル名

options オブジェクト
  • オプション

クエリオプション

戻り値

*

public 非同期 getForeignKeysForTables(tableNames: 文字列[], options: オブジェクト): Promise ソース

要求されたテーブルのすべての外部キー制約を返します。

パラメータ

名前属性説明
tableNames 文字列[]

テーブル名

options オブジェクト
  • オプション

クエリオプション

戻り値

Promise

public quoteIdentifier(identifier: 文字列, force: ブール値): 文字列 ソース

識別子のリストを「.」で分割し、各部分を引用符で囲みます。

パラメータ

名前属性説明
identifier 文字列
force 真偽値

戻り値

文字列

public quoteIdentifiers(identifiers: 文字列): 文字列 ソース

識別子のリストを「.」で分割し、各部分を引用符で囲みます。

パラメータ

名前属性説明
識別子 文字列

戻り値

文字列

public 非同期 removeColumn(tableName: 文字列, attributeName: 文字列, options: オブジェクト): * ソース

テーブルから列を削除します。

パラメータ

名前属性説明
tableName 文字列

列を削除するテーブル

attributeName 文字列

削除する列名

options オブジェクト
  • オプション

クエリオプション

戻り値

*

public 非同期 removeConstraint(tableName: 文字列, constraintName: 文字列, options: オブジェクト): * ソース

テーブルから制約を削除します。

パラメータ

名前属性説明
tableName 文字列

制約を削除するテーブル名

constraintName 文字列

制約名

options オブジェクト

クエリオプション

戻り値

*

public 非同期 removeIndex(tableName: 文字列, indexNameOrAttributes: 文字列 | 文字列[], options: オブジェクト): Promise ソース

テーブルから既に存在するインデックスを削除します。

パラメータ

名前属性説明
tableName 文字列

インデックスを削除するテーブル名

indexNameOrAttributes 文字列 | 文字列[]

インデックス名、またはインデックス内の属性のリスト

options オブジェクト
  • オプション

クエリオプション

options.concurrently 真偽値
  • オプション

インデックス作成中に他の操作を実行するには、CONCURRENTLY を渡します。

戻り値

Promise

public 非同期 renameColumn(tableName: 文字列, attrNameBefore: 文字列, attrNameAfter: 文字列, options: オブジェクト): Promise ソース

列の名前を変更します。

パラメータ

名前属性説明
tableName 文字列

列名を変更するテーブル名

attrNameBefore 文字列

現在の列名

attrNameAfter 文字列

新しい列名

options オブジェクト
  • オプション

クエリオプション

戻り値

Promise

public 非同期 renameFunction(oldFunctionName: 文字列, params: 配列, newFunctionName: 文字列, options: オブジェクト): Promise ソース

SQL関数の名前を変更します。

パラメータ

名前属性説明
oldFunctionName 文字列

関数の現在の名前

params 配列

SQL関数で宣言されたパラメータのリスト

newFunctionName 文字列

関数の新しい名前

options オブジェクト
  • オプション

クエリオプション

戻り値

Promise

queryInterface.renameFunction(
  'fooFunction',
  [
    {type: 'varchar', name: 'param1', direction: 'IN'},
    {type: 'integer', name: 'param2', direction: 'INOUT'}
  ],
  'barFunction'
);

public 非同期 renameTable(before: 文字列, after: 文字列, options: オブジェクト): Promise ソース

テーブルの名前を変更します。

パラメータ

名前属性説明
before 文字列

テーブルの現在の名前

after 文字列

テーブルの新しい名前

options オブジェクト
  • オプション

クエリオプション

戻り値

Promise

public 非同期 showAllSchemas(options: オブジェクト): Promise<配列> ソース

すべてのスキーマを表示します。

パラメータ

名前属性説明
options オブジェクト
  • オプション

クエリオプション

戻り値

Promise<配列>

public 非同期 tableExists(tableName: TableName, options: QueryOptions): Promise<真偽値> ソース

データベースにテーブルが存在する場合はtrue、存在しない場合はfalseを返すPromiseを返します。

パラメータ

名前属性説明
tableName TableName

テーブル名

options QueryOptions

クエリオプション

戻り値

Promise<真偽値>

public 非同期 upsert(tableName: 文字列, insertValues: オブジェクト, updateValues: オブジェクト, where: オブジェクト, options: オブジェクト): Promise<真偽値, ?数値> ソース

Upsert

パラメータ

名前属性説明
tableName 文字列

upsert 対象のテーブル

insertValues オブジェクト

挿入する値(フィールド名にマップされています)

updateValues オブジェクト

更新する値(フィールド名にマップされています)

where オブジェクト

INSERT 失敗時に UPDATE 部分で使用できる WHERE 条件

options オブジェクト

クエリオプション

戻り値

Promise<真偽値, ?数値>

<作成済み、主キー> の配列を解決します。