最近在公司接触到sequelize(Nodejs的ORM框架),研究了官方文档,做了如下安排ModelsDefinitionletDeviceInterface=Sequelize.define('DeviceInterface',{name:{type:Sequelize.STRING,allowNull:false},createBy:{type:Sequelize.INTEGER,defaultValue:'-1'},图片:{type:Sequelize.STRING},desc:{type:Sequelize.STRING}},{tableName:'DeviceInterface'});数据类型Sequelize。字符串//VARCHAR(255)Sequelize.STRING(1234)//VARCHAR(1234)Sequelize.STRING.BINARY//VARCHARBINARYSequelize.TEXT//TEXTSequelize.TEXT('tiny')//TINYTEXTSequelize.INTEGER//INTEGERSequelize.BIGINT//BIGINTSequelize.BIGINT(11)//BIGINT(11)Sequelize.FLOAT//FLOATSequelize.FLOAT(11)//FLOAT(11)Sequelize.FLOAT(11,12)//FLOAT(11,12)Sequelize.REAL//REALPostgreSQLonly.Sequelize.REAL(11)//REAL(11)PostgreSQLonly.Sequelize.REAL(11,12)//REAL(11,12)仅限PostgreSQL。Sequelize.DOUBLE//DOUBLESequelize.DOUBLE(11)//DOUBLE(11)Sequelize.DOUBLE(11,12)//DOUBLE(11,12)Sequelize。DECIMAL//DECIMALSequelize.DECIMAL(10,2)//DECIMAL(10,2)Sequelize.DATE//DATETIMEformysql/sqlite,TIMESTAMPWITHTIMEZONEforpostgresSequelize.DATE(6)//DATETIME(6)formysql5.6.4+。小数秒支持最多6位精度Sequelize.DATEONLY//DATEwithouttime.Sequelize.BOOLEAN//TINYINT(1)Sequelize.ENUM('value1','value2')//具有允许值的ENUM'值ue1'and'value2'Sequelize.ARRAY(Sequelize.TEXT)//定义一个数组。PostgreSQLonly.Sequelize.JSON//JSON列。PostgreSQLonly.Sequelize.JSONB//JSONB列。PostgreSQLonly.Sequelize.BLOB//BLOB(byteaforPostgreSQL)Sequelize.BLOB('tiny')//TINYBLOB(byteaforPostgreSQL.Otheroptionsaremediumandlong)Sequelize.UUID//UUIDdatatypeforPostgreSQLandSQLite,CHAR(36)BINARYforMySQL(使用默认值:Sequelize.UUIDV1或Sequelize.UUIDV4使sequelize自动生成id)Sequelize.RANGE(Sequelize.INTEGER)//定义int4range范围。PostgreSQLonly.Sequelize.RANGE(Sequelize.BIGINT)//定义的int8range范围。PostgreSQLonly.Sequelize.RANGE(Sequelize.DATE)//定义tstzrange范围。PostgreSQLonly.Sequelize.RANGE(Sequelize.DATEONLY)//定义日期范围。仅限PostgreSQL.Sequelize.RANGE(Sequelize.DECIMAL)//定义数字范围。PostgreSQLonly.Sequelize.ARRAY(Sequelize.RANGE(Sequelize.DATE))//定义tstzrange范围的数组。PostgreSQLonly.Sequelize.GEOMETRY//空间列。PostgreSQL(带有PostGIS)或MySQLonly.Sequelize.GEOMETRY('POINT')//具有几何类型的空间列。PostgreSQL(带有PostGIS)或MySQLonly.Sequelize.GEOMETRY('POINT',4326)//具有几何类型和SRID的空间列。PostgreSQL(withPostGIS)orMySQLonly.其他定义方法varUser=sequelize.define('user',{'emp_id':{'type':Sequelize.CHAR(10),//字节类型'allowNull':false,//是否允许为NULL'unique':true//字节是否为UNIQUE},'nick':{'type':Sequelize.CHAR(10),'allowNull':false},'department':{'type':Sequelize.STRING(64),'allowNull':true}},{//自定义表名'freezeTableName':true,'tableName':'xyz_users',//是否需要添加createdAt,updatedAt,deletedAt字段'timestamps':true,//不需要createdAt字段'createdAt':false,//RenametheupdatedAtfieldto'updatedAt':'utime'//RenamedeletedAtfield//同时需要将paranoid设置为true(这种模式下,删除数据时不会进行物理删除,但将deletedAt设置为当前时间'deletedAt':'dtime','paranoid':true});增删改查
