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

Crystal ·
更新时间:2024-09-21
· 876 次阅读

文档地址: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文件


作者:Mosowe



技术文档 nodejs学习 sequelize

需要 登录 后方可回复, 如果你还没有账号请 注册新账号