node-sequelize学习笔记七(迁移)
安装包
npm install --save-dev sequelize npm install --save-dev sequelize-cli npm install --save-dev mysql2 npm install --save-dev koa npm install --save-dev koa2-cors
项目启动
npx sequelize-cli init
这将创建以下文件夹
config
, 包含配置文件,它告诉CLI如何连接数据库models
,包含你的项目的所有模型migrations
, 包含所有迁移文件seeders
, 包含所有种子文件
在继续进行之前,我们需要告诉 CLI 如何连接到数据库. 为此,可以打开默认配置文件 config/config.json
. 看起来像这样:
{ "development": { "username": "root", "password": null, "database": "database_development", "host": "127.0.0.1", "dialect": "mysql" }, "test": { "username": "root", "password": null, "database": "database_production", "host": "127.0.0.1", "dialect": "mysql" }, "production": { "username": "root", "password": null, "database": "database_test", "host": "127.0.0.1", "dialect": "mysql" } }
创建数据库
npx sequelize-cli db:create
创建第一个模型
npx sequelize-cli model:generate --name User --attributes firstName:string,lastName:string,email:string
这将发生以下事情
- 在
models
文件夹中创建了一个user
模型文件; - 在
migrations
文件夹中创建了一个名字像XXXXXXXXXXXXXX-create-user.js
的迁移文件.
运行迁移
直到这一步,CLI没有将任何东西插入数据库. 我们刚刚为我们的第一个模型 User
创建了必需的模型和迁移文件. 现在要在数据库中实际创建该表,需要运行 db:migrate
命令.
npx sequelize-cli db:migrate
此命令将执行这些步骤
- 将在数据库中确保一个名为
SequelizeMeta
的表. 此表用于记录在当前数据库上运行的迁移 - 开始寻找尚未运行的任何迁移文件. 这可以通过检查
SequelizeMeta
表. 在这个例子中,它将运行我们在最后一步中创建的XXXXXXXXXXXXXX-create-user.js
迁移,. - 创建一个名为
Users
的表,其中包含其迁移文件中指定的所有列.
撤销迁移
npx sequelize-cli db:migrate:undo //撤销最近的迁移 npx sequelize-cli db:migrate:undo:all //撤销所有迁移 npx sequelize-cli db:migrate:undo:all --to XXXXXXXXXXXXXX-create-posts.js //撤销指定迁移