Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

prisma can't find database url

Tags:

node.js

prisma

I'm using Prisma in node and I'm using docker.

When I try to create a new user in my database, it says that DATABASE_URL was not found but I declared it inside my env so I don't really know where I have this error.

server_container | Server is running on port 4000
server_container | 
server_container | Invalid `prisma.user.create()` invocation in
server_container | /app/src/app.ts:18:36
server_container |
server_container |   15 const prisma = new PrismaClient();
server_container |   16
server_container |   17 const main = async () => {
server_container | → 18     const user = await prisma.user.create(
server_container |   error: Environment variable not found: DATABASE_URL.
server_container |   -->  schema.prisma:10
server_container |    |
server_container |  9 |   provider = "postgresql"
server_container | 10 |   url      = env("DATABASE_URL")
server_container |    |
server_container |
server_container | Validation Error Count: 1

My docker docker-compose.yml looks like that:

version: '3.8'
services:
  api:
    build: .
    container_name: server_container
    ports:
      - "4000:4000"
    volumes:
      - ./:/app
    networks:
      - api-pokemon-network
    depends_on:
      - db

  db:
    image: postgres:14
    restart: always
    environment:
      POSTGRES_USER: ${POSTGRES_USER}
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
      POSTGRES_DB: ${POSTGRES_DB}
      POSTGRES_PORT: ${POSTGRES_PORT}
    volumes:
      - data:/var/lib/postgresql/data
    env_file:
      - .env
    command: -p ${POSTGRES_PORT}
    networks:
      - api-pokemon-network
    ports:
      - '${POSTGRES_PORT}:${POSTGRES_PORT}'

volumes:
  data:

networks:
  api-pokemon-network:

and this is my .env

POSTGRES_DB=postgres
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres_docker
POSTGRES_HOST=db
POSTGRES_PORT=54320

DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@localhost:${POSTGRES_PORT}/${POSTGRES_DB}?schema=public
like image 691
samuel potter Avatar asked May 13 '26 14:05

samuel potter


1 Answers

just run npx prisma generate. This will re-establish the link between schema.prisma and .env file.Make sure you make your DBURL within the backticks ``.

like image 181
Nabhag Motivaras Avatar answered May 16 '26 05:05

Nabhag Motivaras



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!