๐ Sequelize
Sequelize.STRING; // VARCHAR(255)
Sequelize.STRING(1234); // VARCHAR(1234)
Sequelize.STRING.BINARY; // VARCHAR BINARY
Sequelize.TEXT; // TEXT
Sequelize.TEXT("tiny"); // TINYTEXT
Sequelize.CITEXT; // CITEXT PostgreSQL and SQLite only.
Sequelize.INTEGER; // INTEGER
Sequelize.BIGINT; // BIGINT
Sequelize.BIGINT(11); // BIGINT(11)
Sequelize.FLOAT; // FLOAT
Sequelize.FLOAT(11); // FLOAT(11)
Sequelize.FLOAT(11, 10); // FLOAT(11,10)
Sequelize.REAL; // REAL PostgreSQL only.
Sequelize.REAL(11); // REAL(11) PostgreSQL only.
Sequelize.REAL(11, 12); // REAL(11,12) PostgreSQL only.
Sequelize.DOUBLE; // DOUBLE
Sequelize.DOUBLE(11); // DOUBLE(11)
Sequelize.DOUBLE(11, 10); // DOUBLE(11,10)
Sequelize.DECIMAL; // DECIMAL
Sequelize.DECIMAL(10, 2); // DECIMAL(10,2)
Sequelize.DATE; // DATETIME for mysql / sqlite, TIMESTAMP WITH TIME ZONE for postgres
Sequelize.DATE(6); // DATETIME(6) for mysql 5.6.4+. Fractional seconds support with up to 6 digits of precision
Sequelize.DATEONLY; // DATE without time.
Sequelize.BOOLEAN; // TINYINT(1)
Sequelize.ENUM("value 1", "value 2"); // An ENUM with allowed values 'value 1' and 'value 2'
Sequelize.ARRAY(Sequelize.TEXT); // Defines an array. PostgreSQL only.
Sequelize.ARRAY(Sequelize.ENUM); // Defines an array of ENUM. PostgreSQL only.
Sequelize.JSON; // JSON column. PostgreSQL, SQLite and MySQL only.
Sequelize.JSONB; // JSONB column. PostgreSQL only.
Sequelize.BLOB; // BLOB (bytea for PostgreSQL)
Sequelize.BLOB("tiny"); // TINYBLOB (bytea for PostgreSQL. Other options are medium and long)
Sequelize.UUID; // UUID datatype for PostgreSQL and SQLite, CHAR(36) BINARY for MySQL (use defaultValue: Sequelize.UUIDV1 or Sequelize.UUIDV4 to make sequelize generate the ids automatically)
Sequelize.CIDR; // CIDR datatype for PostgreSQL
Sequelize.INET; // INET datatype for PostgreSQL
Sequelize.MACADDR; // MACADDR datatype for PostgreSQL
Sequelize.RANGE(Sequelize.INTEGER); // Defines int4range range. PostgreSQL only.
Sequelize.RANGE(Sequelize.BIGINT); // Defined int8range range. PostgreSQL only.
Sequelize.RANGE(Sequelize.DATE); // Defines tstzrange range. PostgreSQL only.
Sequelize.RANGE(Sequelize.DATEONLY); // Defines daterange range. PostgreSQL only.
Sequelize.RANGE(Sequelize.DECIMAL); // Defines numrange range. PostgreSQL only.
Sequelize.ARRAY(Sequelize.RANGE(Sequelize.DATE)); // Defines array of tstzrange ranges. PostgreSQL only.
Sequelize.GEOMETRY; // Spatial column. PostgreSQL (with PostGIS) or MySQL only.
Sequelize.GEOMETRY("POINT"); // Spatial column with geometry type. PostgreSQL (with PostGIS) or MySQL only.
Sequelize.GEOMETRY("POINT", 4326); // Spatial column with geometry type and SRID. PostgreSQL (with PostGIS) or MySQL only.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
createTable
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
}
);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40