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