nodejs学习三:sequelize + sequelize-cli基础技术文档

文档地址:https://sequelize.org/master/manual/migrations.html

–env: 默认是development

安装

npm install --save sequelize sequelize-cli

初始化

npx sequelize-cli init

初始化后生成的文件夹:
/config/: 数据库的配置:环境配置
/migrations/: 数据库迁移文件,用于生成数据库表
/models/: 模型文件夹,每一个js文件会和sql表关联
/seeders/: 初始化脚本,每一个表的原始数据

创建数据库

npx sequelize db:create --env=环境

通过以上命令创建一个数据库
–env= : 后面跟config/config.json的环境字段,命令会根据环境配置里面的database字段值创建一个数据库

创建模型

npx sequelize-cli model:generate --name User --attributes firstName:string,lastName:string,email:string

User: 模型名称(数据库表名)
attributes: 模型的属性,相当于数据库表的字段和字段类型
这会在models文件夹内创建一个user.js文件,在migrations创建一个对应的js文件(数据库迁移js文件)

创建表

npx sequelize-cli db:migrate --env=环境

通过以上命令创建一个数据库表
–env= : 后面跟config/config.json的环境字段,此命令会根据migrations文件夹下的js文件生成对应的数据库表
migrations文件夹下的js文件是根据命令 npx sequelize-cli model:generate --name user --attributes name:String创建的,此命令会创建一个模型文件并存放在models文件夹下,

生成默认数据文件 /seeders/xxxxxxxxxxx-user.js

npx sequelize-cli seed:generate --name user

编辑文件的初始化数据:

'use strict';
module.exports = {
  up: (queryInterface, Sequelize) => {
    return queryInterface.bulkInsert('Users', [
      {
        name: 'John',
        createdAt: new Date(),
        updatedAt: new Date()
      }
    ], {});
  },

  down: (queryInterface, Sequelize) => {
    return queryInterface.bulkDelete('Users', null, {});
  }
};

将初始化数据插入数据库

npx sequelize-cli db:seed:all --env=环境

此命令会将/seeders文件夹中的初始化数据传入数据库;
–env= : 环境值,初始化数据插入该环境下的数据库表单

给数据库表添加字段

npx sequelize migration:create --name add-testcolumn-to-user

此命名会生成一个migrations/xxxxxxxxxxxx-add-testcolumn-to-user.js文件

配置该文件:

'use strict';
module.exports = {
  up: (queryInterface, Sequelize) => {
    /*** 单条插入 ***/
    return queryInterface.addColumn('users', 'email', { // 向users表中添加email字段
      type: Sequelize.STRING, // 字段类型
      allowNull: true, // 是否允许空
    });
    /*** 多条插入 ***/
    return Promise.all([ // Promise.all() 当数组成员全部返回后,再统一返回
      queryInterface.addColumn('users', 'pidsd_1', { type: Sequelize.INTEGER }),
      queryInterface.addColumn('users', 'pidsd_2', { type: Sequelize.INTEGER }),
      queryInterface.addColumn('users', 'pidsd_3', { type: Sequelize.INTEGER })
    ])
  },

  down: (queryInterface, Sequelize) => {
  }
};

执行 npx sequelize db:migrate 将新增的字段写入数据库表
配置相应的其他文件:
配置models/user.js文件,将新增的字段写入相应的位置
配置seeders/xxxxxxxxxxx-user.js文件,将新增的字段写入相应的位置,并写入默认值
配置相应的api文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mosowe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值