啟動(dòng)數(shù)據(jù)庫(kù)postgresql
創(chuàng)建數(shù)據(jù)目錄 (Windows Toolbox省)
- 在項(xiàng)目目錄里創(chuàng)建
blog-data
目錄 -
.gitignore
里添加/blog-data/
啟動(dòng) PostgreSQL
- 一句命令啟動(dòng)pg:
docker run -v "$PWD/blog-data":/var/lib/postgresql/data -p 5432:5432 -e POSTGRES_USER=blog -e POSTGRES_HOST_AUTH_METHOD=trust -d postgres:12.2
以下是 Windows 舊版 Docker 客戶端(Toolbox)的命令(推薦 Windows 用戶使用這一版客戶端珍逸,很穩(wěn))
docker run -v "blog-data":/var/lib/postgresql/data -p 5432:5432 -e POSTGRES_USER=blog -e POSTGRES_HOST_AUTH_METHOD=trust -d postgres:12.2
如果報(bào)錯(cuò)黄橘,可以看這篇教程
-
docker ps -a
這句話可以查看容器運(yùn)行狀態(tài) -
docker logs 容器id
這句話可以查看啟動(dòng)日志
驗(yàn)證 pg
進(jìn)入docker容器
docker exec-it容器id bash
進(jìn)入pg命令行
psql -U blog -W
- 我設(shè)置了不需要密碼呆躲,所以直接回車即可
如果你需要密碼可在
docker run選項(xiàng)里的 -e POSTGRES_HOST_AUTH_ME THOD=trust 替換成-e POSTGRES_PASSWORD=123456
執(zhí)行pg命令
-
\l
用于list databases,目前有一個(gè)blog數(shù)據(jù)庫(kù) -
\c
用于 connect to a database -
\dt
用于display tables,目前我們沒有tables -
\q
用于退出
創(chuàng)建數(shù)據(jù)庫(kù)
用SQL來(lái)創(chuàng)建數(shù)據(jù)庫(kù)
- 因?yàn)門ypeORM 沒有提供單純創(chuàng)建數(shù)據(jù)庫(kù)的API(差評(píng))
CREATE DATABASE blog_development ENCODING 'UTF8' LC_COLLATE 'en_US.utf8' LC_CTYPE 'en_US.utf8';
- 我們需要?jiǎng)?chuàng)建三個(gè)數(shù)據(jù)庫(kù):開發(fā)枷餐、測(cè)試、生產(chǎn)
- 對(duì)應(yīng)英文:development、test且轨、production
- 最終結(jié)果得到三個(gè)數(shù)據(jù)庫(kù)
安裝 TypeORM
步驟
- 打開官網(wǎng),點(diǎn)擊Getting Started
- 找能運(yùn)行的代碼
結(jié)果
- 先
git commit -m 'install pg'
提交代碼 - 安裝依賴:
yarn add typeorm reflect-metadata @types/node pg
- 然后修改
tsconfig
里面添加
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
- 注意虚婿,這里要
git commit -m 'add typeorm'
一下 - 然后
npx typeorm init --database postgres
- 重要:然后把一些文件還原一下(WebStorm或命令行)
git checkout HEAD -- tsconfig.json
-
最后修改
ormconfig.json
和src/index.ts
ormconfig.json 如果npx typeorm失敗就改成
./node_modules/.bin/typeorm
連接數(shù)據(jù)庫(kù)
步驟
- 選做:升級(jí) Node.js到v14
- 安裝 @babel/cli
yarn add @babel/cli
npx babel ./src --out-dir dist --extensions ".ts,.tsx"
- 根據(jù)錯(cuò)誤提示搜索答案
yarn add --dev @babel/plugin-proposal-decorators
去 Next.js官網(wǎng)查看.babelrc默認(rèn)配置旋奢,復(fù)制,創(chuàng)建.babelrc
,添加插件
{
"presets": [
"next/babel"
],
"plugins": [
[
"@babel/plugin-proposal-decorators",
{
"legacy": true
}
]
]
}
- 重新運(yùn)行剛剛失敗的命令
- 得到dist里面的JS然痊,運(yùn)行node dist/index.js根據(jù)錯(cuò)誤提示再加上數(shù)小時(shí)的搜索至朗,修改ormconfig
- 重新運(yùn)行 node dist/index.js
- 成功看見connection對(duì)象即為成功
工作流總結(jié)
image.png