QueryInterface
直接のサブクラス
Sequelizeがすべてのデータベースと通信するために使用するインターフェース
メソッドの概要
公開メソッド | ||
public |
テーブルに新しい列を追加します。 |
|
public |
非同期 addConstraint(tableName: 文字列、options: オブジェクト): Promise テーブルに制約を追加します。 |
|
public |
列にインデックスを追加します。 |
|
public |
テーブルから複数のレコードを削除します。 |
|
public |
テーブルに複数のレコードを挿入します。 |
|
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 |
指定された属性セットを持つテーブルを作成します。 |
|
public |
非同期 describeTable(tableName: 文字列、options: オブジェクト): Promise<オブジェクト> テーブル構造を記述します。 |
|
public |
非同期 dropAllSchemas(options: オブジェクト): Promise すべてのスキーマを削除します。 |
|
public |
非同期 dropAllTables(options: オブジェクト): Promise データベースからすべてのテーブルを削除します。 |
|
public |
非同期 dropDatabase(database: 文字列、options: オブジェクト): Promise データベースを削除します。 |
|
public |
非同期 dropFunction(functionName: 文字列、params: 配列、options: オブジェクト): Promise SQL関数を削除します。 |
|
public |
非同期 dropSchema(schema: 文字列、options: オブジェクト): Promise スキーマを削除します。 |
|
public |
データベースからテーブルを削除します。 |
|
public |
非同期 getForeignKeyReferencesForTable(tableName: 文字列、options: オブジェクト): * テーブルの外部キー参照の詳細を取得します。 |
|
public |
非同期 getForeignKeysForTables(tableNames: 文字列[]、options: オブジェクト): Promise 要求されたテーブルのすべての外部キー制約を返します。 |
|
public |
quoteIdentifier(identifier: 文字列、force: ブール値): 文字列 識別子のリストを「.」で分割し、各部分を引用符で囲みます。 |
|
public |
quoteIdentifiers(identifiers: 文字列): 文字列 識別子のリストを「.」で分割し、各部分を引用符で囲みます。 |
|
public |
非同期 removeColumn(tableName: 文字列, attributeName: 文字列, options: オブジェクト): * テーブルから列を削除します。 |
|
public |
非同期 removeConstraint(tableName: 文字列, constraintName: 文字列, options: オブジェクト): * テーブルから制約を削除します。 |
|
public |
テーブルから既に存在するインデックスを削除します。 |
|
public |
列の名前を変更します。 |
|
public |
非同期 renameFunction(oldFunctionName: 文字列, params: 配列, newFunctionName: 文字列, options: オブジェクト): Promise SQL関数の名前を変更します。 |
|
public |
非同期 renameTable(before: 文字列, after: 文字列, options: オブジェクト): Promise テーブルの名前を変更します。 |
|
public |
非同期 showAllSchemas(options: オブジェクト): Promise<配列> すべてのスキーマを表示します。 |
|
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
});
公開 非同期 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のみ |
例
queryInterface.addConstraint('Users', {
fields: ['email'],
type: 'unique',
name: 'custom_unique_constraint_name'
});
queryInterface.addConstraint('Users', {
fields: ['roles'],
type: 'check',
where: {
roles: ['user', 'admin', 'moderator', 'guest']
}
});
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 | 文字列 |
|
テーブル名。これは下位互換性のためだけです。 |
公開 非同期 bulkDelete(tableName: 文字列, where: オブジェクト, options: オブジェクト, model: Model): Promise ソース
テーブルから複数のレコードを削除します。
パラメータ
名前 | 型 | 属性 | 説明 |
tableName | 文字列 | レコードを削除するテーブル名 |
|
where | オブジェクト | 削除するレコードを検索するためのWHERE条件 |
|
options | オブジェクト |
|
options |
options.truncate | 真偽値 |
|
TRUNCATEテーブルコマンドを使用します。 |
options.cascade | 真偽値 |
|
TRUNCATEと組み合わせてのみ使用されます。指定されたテーブル、またはCASCADEによってグループに追加されたテーブルへの外部キー参照を持つすべてのテーブルを切り捨てます。 |
options.restartIdentity | 真偽値 |
|
TRUNCATEと組み合わせてのみ使用されます。切り捨てられたテーブルの列が所有するシーケンスを自動的に再起動します。 |
model | Model |
|
Model |
公開 非同期 bulkInsert(tableName: 文字列, records: 配列, options: オブジェクト, 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 ソース
テーブルの複数のレコードを更新します。
例
queryInterface.bulkUpdate('roles', {
label: 'admin',
}, {
userType: 3,
},
);
public 非同期 changeColumn(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のみ) |
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`フィールドも持つことができます。 |
例
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 非同期 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
}
)
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
}
}
public 非同期 dropAllSchemas(options: オブジェクト): Promise ソース
すべてのスキーマを削除します。
パラメータ
名前 | 型 | 属性 | 説明 |
options | オブジェクト |
|
クエリオプション |
public 非同期 dropFunction(functionName: 文字列, params: 配列, options: オブジェクト): Promise ソース
SQL関数を削除します。
例
queryInterface.dropFunction(
'someFunction',
[
{type: 'varchar', name: 'param1', direction: 'IN'},
{type: 'integer', name: 'param2', direction: 'INOUT'}
]
);
public 非同期 getForeignKeyReferencesForTable(tableName: 文字列, options: オブジェクト): * ソース
テーブルの外部キー参照の詳細を取得します。
これらの詳細には、constraintSchema、constraintName、constraintCatalog、tableCatalog、tableSchema、tableName、columnName、referencedTableCatalog、referencedTableCatalog、referencedTableSchema、referencedTableName、referencedColumnNameが含まれます。ご注意:SQLiteの場合は制約情報は返されません。
戻り値
* |
public 非同期 getForeignKeysForTables(tableNames: 文字列[], options: オブジェクト): Promise ソース
要求されたテーブルのすべての外部キー制約を返します。
public quoteIdentifiers(identifiers: 文字列): 文字列 ソース
識別子のリストを「.」で分割し、各部分を引用符で囲みます。
パラメータ
名前 | 型 | 属性 | 説明 |
識別子 | 文字列 |
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関数の名前を変更します。
例
queryInterface.renameFunction(
'fooFunction',
[
{type: 'varchar', name: 'param1', direction: 'IN'},
{type: 'integer', name: 'param2', direction: 'INOUT'}
],
'barFunction'
);
public 非同期 showAllSchemas(options: オブジェクト): Promise<配列> ソース
すべてのスキーマを表示します。
パラメータ
名前 | 型 | 属性 | 説明 |
options | オブジェクト |
|
クエリオプション |
public 非同期 tableExists(tableName: TableName, options: QueryOptions): Promise<真偽値> ソース
データベースにテーブルが存在する場合はtrue、存在しない場合はfalseを返すPromiseを返します。
パラメータ
名前 | 型 | 属性 | 説明 |
tableName | TableName | テーブル名 |
|
options | QueryOptions | クエリオプション |