The interface that Sequelize uses to talk to all databases
Public Methods | ||
---|---|---|
public | Add a new column to a table | |
public | Add a constraint to a table | |
public | addIndex(tableName: string | Object, attributes: Array, options: Object, rawTablename: string): Promise Add an index to a column | |
public | Delete multiple records from a table | |
public | Insert multiple records into a table | |
public | bulkUpdate(tableName: string, values: Object, identifier: Object, options: Object, attributes: Object): Promise Update multiple records of a table | |
public | changeColumn(tableName: string, attributeName: string, dataTypeOrOptions: Object, options: Object): Promise Change a column definition | |
public | createDatabase(database: string, options: Object): Promise Create a database | |
public | createFunction(functionName: string, params: Array, returnType: string, language: string, body: string, optionsArray: Array, options: Object): Promise Create an SQL function | |
public | createSchema(schema: string, options: Object): Promise Create a schema | |
public | Create a table with given set of attributes | |
public | describeTable(tableName: string, options: Object): Promise<Object> Describe a table structure | |
public | dropAllSchemas(options: Object): Promise Drop all schemas | |
public | dropAllTables(options: Object): Promise Drop all tables from database | |
public | dropDatabase(database: string, options: Object): Promise Drop a database | |
public | dropFunction(functionName: string, params: Array, options: Object): Promise Drop an SQL function | |
public | dropSchema(schema: string, options: Object): Promise Drop a schema | |
public | Drop a table from database | |
public | getForeignKeyReferencesForTable(tableName: string, options: Object): Promise Get foreign key references details for the table | |
public | removeColumn(tableName: string, attributeName: string, options: Object): Promise Remove a column from a table | |
public | removeConstraint(tableName: string, constraintName: string, options: Object): Promise Remove a constraint from a table | |
public | removeIndex(tableName: string, indexNameOrAttributes: string, options: Object): Promise Remove an already existing index from a table | |
public | renameColumn(tableName: string, attrNameBefore: string, attrNameAfter: string, options: Object): Promise Rename a column | |
public | renameFunction(oldFunctionName: string, params: Array, newFunctionName: string, options: Object): Promise Rename an SQL function | |
public | renameTable(before: string, after: string, options: Object): Promise Rename a table | |
public | showAllSchemas(options: Object): Promise<Array> Show all schemas | |
public | upsert(tableName: string, insertValues: Object, updateValues: Object, where: Object, model: Model, options: Object): Promise<boolean, ?number> Upsert |
Add a new column to a table
queryInterface.addColumn('tableA', 'columnC', Sequelize.STRING, { after: 'columnB' // after option is only supported by MySQL });
Promise |
Add a constraint to a table
Available constraints:
Name | Type | Attribute | Description |
---|---|---|---|
tableName | string |
Table name where you want to add a constraint | |
attributes | Array |
Array of column names to apply the constraint over | |
options | Object |
An object to define the constraint name, type etc | |
options.type | string |
Type of constraint. One of the values in available constraints(case insensitive) | |
options.name | string |
|
Name of the constraint. If not specified, sequelize automatically creates a named constraint based on constraint type, table & column names |
options.defaultValue | string |
|
The value for the default constraint |
options.where | Object |
|
Where clause/expression for the CHECK constraint |
options.references | Object |
|
Object specifying target table, column name to create foreign key constraint |
options.references.table | string |
|
Target table name |
options.references.field | string |
|
Target column name |
rawTablename | string |
|
Table name, for backward compatibility |
Promise |
queryInterface.addConstraint('Users', ['email'], {
type: 'unique',
name: 'custom_unique_constraint_name'
});
queryInterface.addConstraint('Users', ['roles'], {
type: 'check',
where: {
roles: ['user', 'admin', 'moderator', 'guest']
}
});
queryInterface.addConstraint('Users', ['roles'], {
type: 'default',
defaultValue: 'guest'
});
Add an index to a column
Name | Type | Attribute | Description |
---|---|---|---|
tableName | string | Object |
Table name to add index on, can be a object with schema | |
attributes | Array |
|
Use options.fields instead, List of attributes to add index on |
options | Object |
indexes options | |
options.fields | Array |
List of attributes to add index on | |
options.concurrently | boolean |
|
Pass CONCURRENT so other operations run while the index is created |
options.unique | boolean |
|
Create a unique index |
options.using | string |
|
Useful for GIN indexes |
options.operator | string |
|
Index operator |
options.type | string |
|
Type of index, available options are UNIQUE|FULLTEXT|SPATIAL |
options.name | string |
|
Name of the index. Default is <table><attr1><attr2> |
options.where | Object |
|
Where condition on index, for partial indexes |
rawTablename | string |
|
table name, this is just for backward compatibiity |
Promise |
Delete multiple records from a table
Name | Type | Attribute | Description |
---|---|---|---|
tableName | string |
table name from where to delete records | |
where | Object |
where conditions to find records to delete | |
options | Object |
|
options |
options.truncate | boolean |
|
Use truncate table command |
options.cascade | boolean |
|
Only used in conjunction with TRUNCATE. Truncates all tables that have foreign-key references to the named table, or to any tables added to the group due to CASCADE. |
options.restartIdentity | boolean |
|
Only used in conjunction with TRUNCATE. Automatically restart sequences owned by columns of the truncated table. |
model | Model |
|
Model |
Promise |
Insert multiple records into a table
Promise |
Update multiple records of a table
Name | Type | Attribute | Description |
---|---|---|---|
tableName | string |
Table name to update | |
values | Object |
Values to be inserted, mapped to field name | |
identifier | Object |
A hash with conditions OR an ID as integer OR a string with conditions | |
options | Object |
|
Various options, please see Model.bulkCreate options |
attributes | Object |
|
Attributes on return objects if supported by SQL dialect |
Promise |
Change a column definition
Promise |
Create a database
Name | Type | Attribute | Description |
---|---|---|---|
database | string |
Database name to create | |
options | Object |
|
Query options |
options.charset | string |
|
Database default character set, MYSQL only |
options.collate | string |
|
Database default collation |
options.encoding | string |
|
Database default character set, PostgreSQL only |
options.ctype | string |
|
Database character classification, PostgreSQL only |
options.template | string |
|
The name of the template from which to create the new database, PostgreSQL only |
Promise |
Create an SQL function
Name | Type | Attribute | Description |
---|---|---|---|
functionName | string |
Name of SQL function to create | |
params | Array |
List of parameters declared for SQL function | |
returnType | string |
SQL type of function returned value | |
language | string |
The name of the language that the function is implemented in | |
body | string |
Source code of function | |
optionsArray | Array |
Extra-options for creation | |
options | Object |
|
query options |
options.force | boolean |
If force is true, any existing functions with the same parameters will be replaced. For postgres, this means using | |
options.variables | Array<Object> |
List of declared variables. Each variable should be an object with string fields |
Promise |
Create a schema
Promise |
Create a table with given set of attributes
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 } )
Promise |
Describe a table structure
This method returns an array of hashes containing information about all attributes in the table.
{ 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 } }
Drop all schemas
Name | Type | Attribute | Description |
---|---|---|---|
options | Object |
|
Query options |
Promise |
Drop a database
Promise |
Drop an SQL function
Promise |
Drop a table from database
Promise |
Get foreign key references details for the table
Those details contains constraintSchema, constraintName, constraintCatalog tableCatalog, tableSchema, tableName, columnName, referencedTableCatalog, referencedTableCatalog, referencedTableSchema, referencedTableName, referencedColumnName. Remind: constraint informations won't return if it's sqlite.
Promise |
Remove a column from a table
Promise |
Remove a constraint from a table
Promise |
Remove an already existing index from a table
Promise |
Rename a column
Promise |
Rename an SQL function
Promise |
Rename a table
Promise |
Show all schemas
Name | Type | Attribute | Description |
---|---|---|---|
options | Object |
|
Query options |
Copyright © 2014–present Sequelize contributors
Licensed under the MIT License.
https://sequelize.org/master/class/lib/query-interface.js~QueryInterface.html