Nest.js project + PostgreSQL deploy 到 render.com

·

1 min read

有個小問題是, render.com 的 DB 只有免費三個月,也許就付錢解決、改用 mongoDB, 試著連到另外一個在 fly.io 的免費 DB?

  1. render.com 開一個 PostgreSQL db:

  2. 同一頁往下拉,抄下這四項資訊:
    Host: (External Database URL 的中間段落)

    Port,

    username

    password

  3. 把檔案拉下來

git clone https://github.com/sunpochin/petKnow-BE-nest
git checkout feature/renderdb
  1. 根目錄加上 .env,

  2. 在檔案 /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,
    }),
  1. 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 裡面的全部內容。