后端-Sequelize-cli工具的使用
1、🍉 Sequelize 与 Sequelize-cli
1-1、Sequelize
Sequelize
是一个基于 Node.js
的 ORM
库。
1-2、ORM
ORM
全称:Object Relational Mapping - 对象关系映射
,是通过使用描述对象和数据库之间映射的元数据,将面向对象语言程序中的对象自动持久化到关系数据库中。说简单一些,就是像操作对象一样去操作数据库,而不是 SQL
。
1-3、Sequelize-cli
Sequelize-cli
是其中的一个独立的工具,提供了一些快速操作数据库的功能。比如:创建数据库、创建表等……。
2、🍓 Sequelize-cli
2-1、安装
首先,我们需要安装 Sequelize-cli
npm i -D sequelize-cli
仅仅有这个工具还不够,应该需要设计到数据库的具体操作。所以,我还要安装 Sequelize
(它们就像是 vue-cli/Vue
、create-react-app/React
之间的关系)。而且 Sequelize
在我们的项目里面还要使用的,所以就安装它。
npm i sequelize
最后,Sequelize
是对 MySQL
、MSSQL
等数据操作的一种抽象封装,提供了统一的 API
,实际具体的数据库操作需要我们独立安装对应的库,比如,我们要操作的是 MySQL
,那么我们需要安装 mysql2
这个独立的模块。
npm i mysql2
2-1-1、数据库与对应的模块
数据库 | 模块 | 地址 |
---|---|---|
MySQL | mysql2@^1.5.2 | https://www.npmjs.com/package/mysql2 |
SQLite | sqlite3@^4.0.0 | https://www.npmjs.com/package/sqlite3 |
MariaDB | mariadb | https://www.npmjs.com/package/mariadb |
PostgreSQL | pg@^7.0.0 | https://www.npmjs.com/package/pg |
pg-hstore | https://www.npmjs.com/package/pg-hstore | |
MSSQL | tedious@^6.0.0 | https://www.npmjs.com/package/tedious |
3、🍊 基础概念
首先,我们先来了解几个概念,同时通过这几个概念来了解这个工具到底是做什么的。
- 迁移
- 种子
3-1、迁移
迁移的功能类似于 Git
。通过它,我们可以追踪数据库的状态以及变更记录,我们会把这些信息存储到指定的文件中,然后执行指定的命令来更新数据库或者恢复到某个原有状态。
3-2、种子
有的时候,我们需要为数据库写入一些测试数据,那么这个时候,我们就可以通过种子来完成这个需求。
4、🍇 配置文件
我们在根目录下创建一个文件:.sequelizerc
,这是我们使用 Sequelize-cli
工具的时候读取的配置文件。
// file: backend/.sequelizerc
const path = require('path');
module.exports = {
'env': 'development',
'config': path.resolve('src', 'configs/database.json'),
'migrations-path': path.resolve('src', 'database/migrations'),
'seeders-path': path.resolve('src', 'database/seeders'),
'models-path': path.resolve('src', 'database/models'),
'debug': true
};
4-1、配置选项
4-1-1、env
设置 Sequelize
的环境变量,默认读取系统的环境变量 NODE_ENV
的值,如果不存在 NODE_ENV
则为 development
。该变量会影响下面 config
的读取。
4-1-2、config
Sequelize
数据库配置文件存放目录。
4-1-3、migrations-path
数据库迁移脚本文件存放目录。
4-1-4、seeders-path
数据库种子脚本文件存放目录。
4-1-5、models-path
数据库模型文件存放目录。
4-1-6、debug
是否显示详细的 debug 信息。