这是我参与2022首次更文挑战的第12天,活动详情查看:2022首次更文挑战
Sequelize 中的 Migration 是一个 javascript 文件,它导出两个函数 up 和 down,这些函数指示如何执行迁移和撤消它, 可以手动定义这些功能,但不必手动调用它们; 它们将由 CLI 自动调用. 在这些函数中,借助 sequelize.query 以及 Sequelize 提供给其他任何方法, 简单地执行所需的任何查询
安装 CLI
安装 Sequelize CLI
npm install --save-dev sequelize-cli
项目启动
要创建一个空项目,执行 init
npx sequelize-cli init
创建以下文件夹
config, 包含配置文件,它配置CLI如何连接数据库models,包含项目的所有模型migrations, 包含所有迁移文件seeders, 包含所有种子文件
结构
打开默认配置文件 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"
}
}
默认情况下,Sequelize CLI 使用 mysql,现在编辑此文件并设置正确的数据库凭据, 例如 "development"用于 model/index.js 以匹配 process.env.NODE_ENV
Sequelize 将为每个数据库使用默认的连接端口(例如,postgres,它是端口5432). 如果需要指定其他端口,请使用 port 字段(默认情况下它不在 config/config.js 中).
注意: 如果数据库还不存在, 可以调用 db:create 命令. 通过正确的访问,它将为你创建该数据库.*
创建第一个模型(和迁移)
正确配置了CLI配置文件,就可以创建迁移, 将使用 model:generate 命令. 此命令需要两个选项
name: 模型的名称attributes: 模型的属性列表
npx sequelize-cli model:generate --name User --attributes firstName:string,lastName:string,email:string
执行以下操作
- 在
models文件夹中创建了一个user模型文件; - 在
migrations文件夹中创建了一个名字像X-create-user.js的迁移文件.
注意: *Sequelize 将只使用模型文件, 迁移文件是该模型的更改, 或更具体的是说 CLI 所使用的表
运行迁移
CLI没有将任何东西插入数据库. 模型 User 创建了必需的模型和迁移文件. 现在要在数据库中实际创建该表,需要运行 db:migrate 命令
npx sequelize-cli db:migrate
将执行这些步骤
- 将在数据库中确保一个名为
SequelizeMeta的表. 此表用于记录在当前数据库上运行的迁移 - 开始寻找尚未运行的任何迁移文件. 这可以通过检查
SequelizeMeta表. 在这个例子中,它将运行创建的X-create-user.js迁移,. - 创建一个名为
Users的表,其中包含其迁移文件中指定的所有列.