sequelize 命令集合
sequelize [命令]
命令:
sequelize db:migrate 运行待执行的迁移
sequelize db:migrate:schema:timestamps:add 更新迁移表以获取时间戳
sequelize db:migrate:status 列出所有迁移的状态
sequelize db:migrate:undo 恢复迁移
sequelize db:migrate:undo:all 恢复所有迁移
sequelize db:seed 运行指定的种子
sequelize db:seed:undo 撤消最近执行的种子
sequelize db:seed:all 运行所有种子
sequelize db:seed:undo:all 撤消所有已执行的种子
sequelize db:create 创建配置中指定的数据库
sequelize db:drop 删除配置中指定的数据库
sequelize init 初始化项目
sequelize init:config 初始化配置
sequelize init:migrations 初始化迁移
sequelize init:models 初始化模型
sequelize init:seeders 初始化种子
sequelize migration:generate 生成新的迁移文件 [aliases: migration:create]
sequelize model:generate 生成一个模模型及期迁移文件 [aliases: model:create]
sequelize seed:generate 生成一个新的种子文件 [aliases: seed:create]
选项:
--help 显示帮助信息 [布尔]
--version 显示版本号 [布尔]
安装:
npm install sequelize sequelize-cli mysql2 --save
使用 sequelize-cli
-
查看命令
node_module/.bin/sequelize等同于 npx sequelize -
初始化:
npx sequelize init初始化命令执行完成后会生成 configs、migrations、models、seeders 文件夹
config:包含配置文件,这些文件会告诉CLI怎样连接数据库models:包含项目中的所有模型migrations:包含所有迁移文件seeders:包含所有种子文件
动态配置上述文件夹位可以在项目
根目录配置.sequelizerc文件const path = require('path'); module.exports = { 'config': path.resolve('config', 'database.json'), 'models-path': path.resolve('db', 'models'), 'seeders-path': path.resolve('db', 'seeders'), 'migrations-path': path.resolve('db', 'migrations') } -
创建数据库:
npx sequelize db:create -
migrations 命令
// migrations 文件夹内会生成一个新文件 创建模型:npx sequelize model:create --name users --attributes name:STRING models/migrations // 在数据库中生成 users 表 迁移:npx sequelize db:migrate // 执行 migrations migrations 中最近文件 down 方法,默认删除对应的表 撤销迁移:npx sequelize db:migrate:undo // 撤销指定的文件 xxxx.ts 在数据库的 SequelizeMeta 表(如果是添加/删除字段,表中数据也会更新) 撤销指定文件:npx sequelize migrate:undo --name xxxx.ts(迁移文件) // 撤销所有迁移 撤销所有迁移:npx sequelize db:migrate:undo:all // 建立一个新的迁移文件 xxxx.ts 表新增字段:npx sequelize migration:generate --name usersAdd -
seeder 相关
// 在 seeders 文件夹中生成 xxxx.js 文件 创建 seeder 文件: npx sequelize seed:generate --name mockUser // 执行所有种子文件,数据插入成功,但是 seeder 文件默认是没有历史记录,如果再次执行还是会在数据库插入相同数据 执行所有的种子文件:npx sequelize db:seed:all // 撤销所有种子文件 撤销所有种子文件:npx sequelize db:seed:undo:all注意⚠️:在 seed:all命令 seeder 文件默认是没有历史记录,如果再次执行还是会在数据库插入相同数据,为避免这种情况的发生需要在 config 文件中配置 seederStorage
"development": { "username": "root", "password": "123456", "database": "test", "host": "127.0.0.1", "dialect": "mysql", // 使用不同的存储空间. Default: none(sequelize(seed记录存储到数据库中)|json(目录文件中)) "seederStorage": "sequelize", // 使用不同的表名 Default: SequelizeData(db 存储表名) "seederStorageTableName": "sequelize_data" } -
关于迁移存储以及种子存储
{ "development": { "username": "root", "password": "test", "database": "test", "host": "127.0.0.1", "dialect": "mysql", // ------迁移存储------ // 使用不同的存储类型. Default: sequelize (sequelize or json) "migrationStorage": "json", // 使用不同的文件名. Default: sequelize-meta.json "migrationStoragePath": "sequelizeMeta.json", // 使用不同的表名. Default: SequelizeMeta "migrationStorageTableName": "sequelize_meta" // ------种子存储------ // 使用不同的存储空间. Default: none (sequelize or json) "seederStorage": "json", // 使用不同的文件名. Default: sequelize-data.json "seederStoragePath": "sequelizeData.json", // 使用不同的表名 Default: SequelizeData "seederStorageTableName": "sequelize_data" } }

本文介绍了sequelize命令的使用,包括安装sequelize-cli、查看命令、初始化项目以及生成的configs、migrations、models和seeders文件夹的作用。重点讨论了数据库的创建、migrations命令和seeder操作,提醒在使用seed:all时要注意seederStorage的配置以防止重复数据插入。
584

被折叠的 条评论
为什么被折叠?



