Sequelize笔记
发表于: 2020-07-14 17:20:08
简介: 暂无~
Mysql
Linux下的Mysql
- 数据库名与表名是严格区分大小写的;
- 表的别名是严格区分大小写的;
- 列名与列的别名在所有的情况下均是忽略大小写的;
- 变量名也是严格区分大小写的。
Windows下的Mysql
- 任何情况下都不区分大小写。
定义
注意:使用sequelize创建表,创建出来的表名一定是小写的!但是表字段可以是大小写混合。
timestamps
默认值:true
// 不添加时间戳属性 (updatedAt, createdAt)
timestamps: false,
// 不要忘记启用时间戳!
timestamps: true,
// 我不想要 createdAt
createdAt: false,
// 我想 updateAt 实际上被称为 updateTimestamp
updatedAt: 'updateTimestamp',
// 并且希望 deletedA t被称为 destroyTime(请记住启用paranoid以使其工作)
deletedAt: 'destroyTime',
paranoid: true,
underscored
默认值:false
Sequelize 允许为 Model 设置 underscored
选项. 当 true
时,此选项会将所有属性的 field
参数设置为其名称的下划线版本. 这也适用于关联生成的外键.
// 将自动设置所有属性的字段参数为下划线命名方式.
// 不会覆盖已经定义的字段选项
// 这样 updatedAt 的字段名会是 updated_at
underscored: true,
// 将 articleId 添加到 Comment 模型,但字段将设置为 `article_id`
// 这意味着列名称将是 `article_id`
User.hasMany(Task);
Article.hasMany(Comment)
// 同样会将 articleId 添加到 Comment 模型,但字段将设置为 `article_id`
// 这意味着列名称将是 `article_id`
Comment.belongsTo(Article);
freezeTableName
// 禁用修改表名; 默认情况下,sequelize将自动将所有传递的模型名称(define的第一个参数)转换为复数. 如果你不想这样,请设置以下内容
freezeTableName: true
tableName
// 定义表的名称
tableName: 'my_very_custom_table_name'
Article表
const Sequelize = require('sequelize')
const sequelize = require('../config/db')
const Article = sequelize.define(
// 这将控制自动生成的foreignKey和关联命名的名称
'article',
{
id: {
type: Sequelize.INTEGER,
primaryKey: true,
allowNull: false,
autoIncrement: true
},
title: {
type: Sequelize.STRING(50),
},
type: {
type: Sequelize.STRING(20),
},
img: {
type: Sequelize.STRING(100),
defaultValue: '无'
},
content: {
type: Sequelize.STRING,
},
date: {
type: Sequelize.DATE,
},
click: {
type: Sequelize.INTEGER,
defaultValue: 0
},
},
{
freezeTableName: true,
}
)
// .sync({ force: true })会删除并重建表
// Articlea.sync({ force: true }).then((res) => {
// console.log('如果表存在 会删除表重新建表')
// console.log(res)
// })
module.exports = Article
Article_tag表
const Sequelize = require('sequelize')
const sequelize = require('../config/db')
const Article_tag = sequelize.define(
'article_tag',
{
id: {
type: Sequelize.INTEGER,
primaryKey: true,
allowNull: false,
autoIncrement: true
},
article_id: {
type: Sequelize.INTEGER,
},
tag_id: {
type: Sequelize.INTEGER,
},
},
{
freezeTableName: true
}
)
module.exports = Article_tag