前言
在 Node.js 企业级应用程序开发中,常常用到关系型数据库进行数据存储。Sequelize 是 Node.js 中很好用的 ORM 框架,可以适用于所有主要的 SQL 数据库。 Sequelize CLI (命令行界面)则是 sequelize 的一个扩展,为开发者提供了更多工具,可以更方便地进行数据库管理和操作。
本文着重介绍 npm 包 sequelize-cli 的使用教程,详细讲解在项目中使用 sequelize-cli 进行数据库管理的步骤和功能。
安装 sequelize-cli
全局安装 sequelize-cli:
npm install -g sequelize-cli
配置
1. 创建一个基本配置文件
在项目根目录下执行以下指令:
sequelize init:config
此时,一个名为 config/config.json 的配置文件会生成,内容如下:
-- -------------------- ---- ------- - -------------- - ----------- ------- ----------- ----- ----------- ----------------------- ------- ------------ ---------- ------- -- ------- - ----------- ------- ----------- ----- ----------- ---------------- ------- ------------ ---------- ------- -- ------------- - ----------- ------- ----------- ----- ----------- ---------------------- ------- ------------ ---------- ------- - -
此处以 mysql 为例,对配置文件进行一些说明:
- username:用户名(注意大小写)
- password:密码(可以为空)
- database:使用的数据库名称
- host:数据库主机名或 IP 地址
- dialect:使用的数据库类型
2. 创建必须的目录
执行以下指令:
sequelize init:models sequelize init:migrations
在项目目录下生成 models/ 和 migrations/ 文件夹。
3. 配置数据库
执行以下指令:
sequelize db:create
在命令行中输入以上指令后,sequelize-cli 将会自动创建一个与配置文件中指定的数据库名称的同名数据库。
到此为止,配置环节的工作就完成了。
数据库表的创建和管理
1. 创建一个模型
执行以下指令:
sequelize model:generate --name User --attributes name:string,email:string,password:string
此时,models/ 目录下会生成名为 user.js 的文件,文件内容如下:
-- -------------------- ---- ------- ---- -------- ----- - ----- - - --------------------- -------------- - ----------- ---------- -- - ----- ---- ------- ----- - ------ ----------------- - -- ------ ----------- ---- - -- ----------- ----- ----------------- ------ ----------------- --------- ---------------- -- - ---------- ---------- ------- --- ------ ----- --
实际上,上面的指令等同于执行以下操作:
- 在 models/ 目录下创建名为 user.js 的文件
- 编写 user.js 文件中的 model
- 在 config/config.json 中配置 sequelize 数据库连接
在以上步骤完成后,下一步就可以执行以下命令,将用户模型同步到数据库中:
sequelize db:migrate
如果执行成功,则将在本地数据库中创建名为 users 的表(表的名称将根据模型名称的复数形式命名)。
2. 修改模型
修改 user.js 文件中的 model,例如添加一个 age 属性,修改后的文件内容如下:
-- -------------------- ---- ------- ---- -------- ----- - ----- - - --------------------- -------------- - ----------- ---------- -- - ----- ---- ------- ----- - ------ ----------------- - -- ------ ----------- ---- - -- ----------- ----- ----------------- ------ ----------------- --------- ----------------- ---- ----------------- -- ---- --- -- -- - ---------- ---------- ------- --- ------ ----- --
执行以下命令,将修改同步到数据库中:
sequelize db:migrate
3. 数据库表的同步、迁移与回滚
sequelize-cli 提供了丰富的数据库表同步和管理功能。下面将详细介绍常见的同步、迁移与回滚方式。
同步数据库
执行以下命令同步数据库:
sequelize db:migrate
迁移数据库
如果需要更新数据库中已有的表,可以执行以下指令:
sequelize migration:create --name modify_user_name
此时,生成名为 create-modify_user_name.js 的文件。在该文件中,可以编辑需要执行的操作,例如更改列类型、添加列等。
修改完毕后,可以执行以下命令将迁移同步到数据库中:
sequelize db:migrate
此时,已有的表中将反映修改后的内容。
回滚数据库
如果需要回滚之前的操作,可以执行以下命令:
sequelize db:migrate:undo
执行该命令时,sequelize-cli 将执行最近一次的 migration 撤销操作。
如果需要对某个指定迁移进行撤销操作,则可以执行以下命令:
sequelize db:migrate:undo --name modify_user_name
其中,modify_user_name 是需要回滚的迁移的名称。
总结
通过上述学习,我们了解了如何使用 npm 包 sequelize-cli 进行数据库管理,具备了创建表、同步、迁移和回滚等基本操作的能力。
未来的开发工作中,祝你使用 sequelize-cli 更加得心应手,快乐愉悦地进行企业级应用程序开发!
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/198562