日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

node本地连接服务器的数据库_基于Node.jsORM框架Sequelize的数据库迁移一

發(fā)布時(shí)間:2025/3/15 数据库 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 node本地连接服务器的数据库_基于Node.jsORM框架Sequelize的数据库迁移一 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

開課吧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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。