node本地连接服务器的数据库_基于Node.jsORM框架Sequelize的数据库迁移一
開課吧Web前端教程
前言
在日常的后端項(xiàng)目開發(fā)中,我們經(jīng)常需要和數(shù)據(jù)庫打交道。在這個(gè)過程中,我們需要?jiǎng)?chuàng)建數(shù)據(jù)庫、表還有一些測(cè)試數(shù)據(jù)。許多時(shí)候,因?yàn)闃I(yè)務(wù)需求的變更導(dǎo)致的數(shù)據(jù)庫結(jié)構(gòu)的變化,需要修改數(shù)據(jù)庫,添加新的測(cè)試數(shù)據(jù)等。像這類問題,如果每次都要依靠手工的方式去做是很繁瑣也難免會(huì)出現(xiàn)錯(cuò)誤的,在講求自動(dòng)化的今天,我們其實(shí)是可以通過各種工具來協(xié)助我們完成這項(xiàng)工作的。不同的語言其實(shí)都有類似的工具,這篇文章,我們就以基于 Node.js 的一個(gè)框架:Sequelize 來進(jìn)行了解和學(xué)習(xí)。
介紹
Sequelize 其實(shí)是一個(gè)功能強(qiáng)大的基于 Node.js 開發(fā)的 ORM 框架:
? 支持 Promise;
? 支持 Postgres、MySQL、MariaDB、SQLite、MSSQL;
? 支持事務(wù)等;
它的功能很強(qiáng)大,也很豐富,這里不去一一闡述了,這篇文章,我們主要來了解一下 Sequelize 提供的一個(gè)叫 Migrations(遷移) 的功能。
什么是遷移?
Sequelize 中的遷移的功能類似于 Git 。通過它,我們可以追蹤數(shù)據(jù)庫的狀態(tài)以及變更記錄,我們會(huì)把這些信息存儲(chǔ)到指定的文件中,然后執(zhí)行指定的命令來更新數(shù)據(jù)庫或者恢復(fù)到某個(gè)原有狀態(tài)。
遷移工具 - sequelize-cli
我們首先創(chuàng)建一個(gè)項(xiàng)目,使用 npm init 初始化
安裝
使用遷移工具,需要安裝依賴 sequelize 和 mysql2
文章中使用的數(shù)據(jù)為:mysql
npm i sequelize mysql2
安裝遷移工具 sequelize-cli
npm 方式
npm install --save sequelize-cli
使用
./node_modules/.bin/sequelize ...
npx 方式
我們也可以通過 npx 來更便捷的使用遷移工具
npx sequelize-cli ...
npx 為 npm 5.2 版本以后自帶,如果不能使用,可以手動(dòng)安裝:npm install -g npx
基本概念與使用
初始化
我們可以通過 init 初始化遷移項(xiàng)目
npx sequelize-cli init
它會(huì)在當(dāng)前目錄下創(chuàng)建下面幾個(gè)文件夾(后面加備注的為 init 生成的文件夾 )
├── config(配置文件目錄)
│ └── config.json(默認(rèn)配置文件)
├── migrations(遷移腳本)
├── models(模型腳本)
├── node_modules
├── package-lock.json
├── package.json
└── seeders(種子腳本)
目錄文件說明
配置 - config
主要提供鏈接數(shù)據(jù)所需要的一些配置
{
"development": {
// 數(shù)據(jù)庫服務(wù)器主機(jī)
"host": "127.0.0.1",
// 數(shù)據(jù)庫類型
"dialect": "mysql",
// 數(shù)據(jù)庫服務(wù)器連接用戶名
"username": "root",
// 數(shù)據(jù)庫服務(wù)器連接密碼
"password": null,
// 數(shù)據(jù)庫名稱
"database": "database_development"
},
"test": {
//...
},
"production": {
//...
}
}
正如我們看到的,配置文件中默認(rèn)會(huì)有三個(gè)不同環(huán)境的配置:development、test、production,分別對(duì)應(yīng):開發(fā)環(huán)境、測(cè)試環(huán)境、生產(chǎn)環(huán)境(我們也可以根據(jù)具體情況增減)。同時(shí)配合當(dāng)前系統(tǒng)環(huán)境變量 NODE_ENV 自動(dòng)載入不同的配置。
遷移腳本 - migrations
這里的遷移腳本就是我們這篇文章需要關(guān)注的重點(diǎn)了,數(shù)據(jù)庫中的每一張表、字段的建立,以及后續(xù)的更新都是通過執(zhí)行遷移腳本來完成的。
模型腳本 - models
模型文件其實(shí)就是用對(duì)象/類(這里指JavaScript)來描述數(shù)據(jù)庫表/字段的文件,主要思想就是讓我們像對(duì)象一樣操作數(shù)據(jù)庫(也就是關(guān)系映射模型 - ORM),有點(diǎn)類似 DOM 的意思。這個(gè)主要用于項(xiàng)目實(shí)際的業(yè)務(wù)代碼中使用,如果只是遷移或者后續(xù)的種子,可不需要模型,所以這篇文章中,我們不會(huì)過多的去介紹模型的使用。
種子腳本 - seeders
有的時(shí)候,我們需要為數(shù)據(jù)庫寫入一些測(cè)試數(shù)據(jù),那么這個(gè)時(shí)候,我們就可以通過種子腳本來完成這個(gè)需求。
做完一些準(zhǔn)備工作,也介紹了一些基本概念,下面我們通過一個(gè)簡(jiǎn)單的案例需求進(jìn)一步了解 sequelize-cli 的使用。
創(chuàng)建/銷毀 數(shù)據(jù)庫
sequelize-cli 提供了許多的命令來幫助我們完成特定的需求,我們可以通過 --help 查看幫助
npx sequelize-cli --help
創(chuàng)建數(shù)據(jù)庫
npx sequelize-cli db:create
要連接的數(shù)據(jù)庫信息,和要?jiǎng)?chuàng)建的數(shù)據(jù)庫名稱都在配置文件中
銷毀數(shù)據(jù)庫
npx sequelize-cli db:drop
以上是酷仔今日整理的“基于Node.js ORM框架 Sequelize 的數(shù)據(jù)庫遷移(一)”一文,希望為正在學(xué)習(xí)Web前端的同學(xué)提供參考。以上內(nèi)容為酷仔整理的上半部分,剩余內(nèi)容請(qǐng)看下文。
總結(jié)
以上是生活随笔為你收集整理的node本地连接服务器的数据库_基于Node.jsORM框架Sequelize的数据库迁移一的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ndnsim r语言 ubuntu_Ub
- 下一篇: db2 语句包括不必要的列表_DB2的一