sequelize结合sequelize-cli使用

基本配置

sequelize安装
yarn add sequelize
yarn add sequelize-cli
yarn add mysql2
查看有哪些命令
.\node_modules\.bin\sequelize
初始化
.\node_modules\.bin\sequelize init
# 生成对应的文件夹
# config 配置文件夹
# migrations 迁移文件夹
# models 模型文件夹
# seeders 种子文件夹
配置数据库
// config -> config.json
// 三种开发环境的, 只是取一种, 开发环境
"development": {
    "username": "root",
    "password": "root",
    "database": "sequelize_db",
    "host": "127.0.0.1",
    "dialect": "mysql",
    "operatorsAliases": false // 删除这一行, 上一行的逗号也去掉
},

基本使用

创建数据库
 # 设置数据库默认编码为utf8
 .\node_modules\.bin\sequelize db:create --charset 'utf8'
创建模型和迁移文件
# create 和 generate 都可以
# 如果表的字段很多的话, 那么命令行就写一两个, 后面可以在文件里面更改
.\node_modules\.bin\sequelize model:create --name User --attributes username:string,password:string
数据类型

官方文档

// 迁移文件
Sequelize.STRING // varchar(255)
Sequelize.STRING(50)

Sequelize.INTEGER

Sequelize.TEXT  

Sequelize.BIGINT              
Sequelize.BIGINT(11) 

Sequelize.FLOAT                       // FLOAT
Sequelize.FLOAT(11)                   // FLOAT(11)
Sequelize.FLOAT(11, 10)               // FLOAT(11,10)

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.JSON                        // JSON column. PostgreSQL, SQLite and MySQL only.
迁移文件字段属性
// 迁移文件 设计数据表的
{
	allowNull: false, // 是否允许为空
	autoIncrement: true, // 字段是否是自增类型
	primaryKey: true, // 字段是否是主键
	type: Sequelize.INTEGER // 字段是整型
    defaultValue: null, // 字段默认值
    unique: true // 唯一索引
}
添加索引
// 迁移文件, 也可以在这里添加唯一索引
up: (queryInterface, Sequelize) => {
    return queryInterface.createTable('Users', {
      
    }).then(()=>{
      // ===================普通索引=======================================
      return queryInterface.addIndex('users', ['email'])
      
      // ===================普通索引=======================================
      /* return queryInterface.addIndex('users', {
        name: 'email-index',
        fields: ['email']
      }) */
      
      // =======================唯一索引====================================
       /* return queryInterface.addIndex('users', ['username'], {
        unique: true
      }) */
      
      // ========================唯一索引====================================
      /* return queryInterface.addIndex('users', {
        name: 'username',
        unique: true,
        fields: ['username']
      }); */
    });
  },
发布了39 篇原创文章 · 获赞 2 · 访问量 1089

猜你喜欢

转载自blog.csdn.net/qq_39583550/article/details/104679893