Sequelize-創建表


  • 首先需要創建一個 Node 項目
npm init -y
  • 然后安裝 Sequelize
npm install sequelize
  • 導入 Sequelize
const Sequelize = require('sequelize');
  • 配置連接信息:
  • 第一個參數:要操作的數據庫名稱
  • 第二個參數:數據庫用戶名
  • 第三個參數:數據庫密碼
  • 第四個參數:其它的配置信息
const sequelize = new Sequelize('bntang', 'root', 'root', {
    // MySQL服務器地址
    host: '127.0.0.1',
    // MySQL服務器端口號
    port: 3306,
    // 注意點: Sequelize不僅僅能操作MySQL還能夠操作其它類型的數據庫
    // 告訴Sequelize當前要操作的數據庫類型
    dialect: 'mysql',
    // 連接池
    pool: {
        // 最多有多少個連接
        max: 5,
        // 最少有多少個連接
        min: 0,
        // 當前連接多久沒有操作就斷開
        idle: 10000,
        // 多久沒有獲取到連接就斷開
        acquire: 30000,
    }
});

字段說明常用屬性

字段名稱 作用
type 字段類型
primaryKey 是否是主鍵
autoIncrement 是否自動增長
allowNull 是否允許為空
unique 是否必須唯一
defaultValue 默認值

額外配置常用屬性

字段名稱 作用
timestamps 是否自動添加 createdAt / updateAt 字段
freezeTableName 是否禁止自動將表名修改為復用
tableName 是否自定義表名
indexes 指定索引
  • 例如如下的方式創建索引:
// 指定索引
indexes: [
    {
    	// 索引名稱
        name: '',
        // 索引字段名稱
        fields: [''],
    }
]
  • 使用 sequelizedefine 方法即可創建
  • 下面先對參數進行說明:
  • 第一個參數:用於指定 表的名稱
  • 第二個參數:用於指定 表中有哪些字段
  • 第三個參數:用於配置 表的一些額外信息
  • 🐤注意點:
    • Sequelize 在根據模型創建表的時候, 會自動將我們指定的表的名稱變成復數
    • Sequelize 在根據模型創建表的時候, 會自動增加兩個字段 createAt / updateAt
let User = sequelize.define('user', {
    id: {
        type: Sequelize.INTEGER,
        primaryKey: true,
        autoIncrement: true
    },
    name: {
        // varchar(255)
        type: Sequelize.STRING,
        allowNull: false,
        unique: true
    },
    age: {
        type: Sequelize.TINYINT,
        defaultValue: 66
    },
    gender: {
        type: Sequelize.ENUM(['男', '女', '妖']),
        defaultValue: '妖'
    }
}, {// 告訴 sequelize 不需要自動將表名變成復數
    freezeTableName: true,
    // 自定義表名
    // tableName: 'student',
    // 不需要自動創建 createAt / updateAt 這兩個字段
    timestamps: false,
    // 指定索引
    indexes: [
        {
            // 索引名稱
            name: 'idx_age',
            // 索引字段名稱
            fields: ['age'],
        }
    ]
});
  • 注意點
    • 默認定義好一個模型之后並不會自動創建對應的表
    • 我們需要通過調用連接對象的 sync 方法來執行同步
    • 只有同步之后才會自動根據模型創建對應的表
sequelize.sync();


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM