3

I am unable to query my Postgres DB in Render. I researched this issue online and found that it was a common problem but none of the solutions I found worked.

Here is my server-side code (I am using NodeJS, Express, Typescript and Postgres)

import postgres, { RowList, Row } from 'postgres'
import appconfig from '../app.config'

type Query = (sql: string) => Promise<RowList<Row[]>>

const query: Query = async (sql) => {
  try {
    const q = postgres({
      host: appconfig.database.host,
      port: appconfig.database.port,
      database: appconfig.database.schema,
      username: appconfig.database.username,
      password: appconfig.database.password,
    })
    const res = await q`${sql}`

    return res
  } catch (err) {
    throw err
  }
}

export default query

I receive the following error every time and have not had a successful attempt. It's worth noting I have no issues connecting from PGAdmin on the same PC with the same credentials

Error: read ECONNRESET
    at TCP.onStreamRead (node:internal/stream_base_commons:217:20)      
    at cachedError (C:\Users\xxxxx\repos\one-watch\node_modules\postgres\cjs\src\query.js:171:23)
    at new Query (C:\Users\xxxxx\repos\one-watch\node_modules\postgres\cjs\src\query.js:36:24)
    at sql (C:\Users\xxxxx\repos\one-watch\node_modules\postgres\cjs\src\index.js:111:11)
    at C:\Users\xxxxx\repos\one-watch\src\database\query.ts:15:24   

I have never used postgres before, all of my database experience has been in mysql up to this point, although I don't expect this is a postgres problem but potentially just a nuance of Render's implementation of their Postgres service. Any help would be greatly appreciated, thanks!

The only articles I've found like this one are related but they are able to get at least some sort of successful connection at least once. In my case they are all failing.

1 Answer 1

12

Adding

?sslmode=no-verify

in the end of the url worked for me.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.