Nest.js project + PostgreSQL deploy 到 render.com
有個小問題是, render.com 的 DB 只有免費三個月,也許就付錢解決、改用 mongoDB, 試著連到另外一個在 fly.io 的免費 DB?
在 render.com 開一個 PostgreSQL db:
同一頁往下拉,抄下這四項資訊:
Host: (External Database URL 的中間段落)Port,
username
password
把檔案拉下來
git clone https://github.com/sunpochin/petKnow-BE-nest
git checkout feature/renderdb
根目錄加上 .env,
在檔案 /src/app.module.ts 裡面,
1. 設定好四個 process.env.* 變數
2. 加上 ssl: true,
TypeOrmModule.forRoot({
type: 'postgres',
host: process.env.PG_HOST,
port: 5432,
username: process.env.PG_USERNAME,
password: process.env.PG_PASSWORD,
database: process.env.PG_DB,
autoLoadEntities: true,
synchronize: true,
ssl: true,
}),
- package.json 指定 node version, 不然 render 會用預設的 version, 錯誤。
"engines": {
"node": ">=18.18.0 <19.0.0"
},
切換到 render 頁面,註冊登入之後,Connect 你 github 中的 repo.: petKnow-BE-nest,
Instace Type 選 Free,
選到下面 "Advance" 選項,"Add Secret File"
Filename 寫 .env, 點 File Contents 並且 copy-paste 你 local .env 裡面的全部內容。