O erro que você está enfrentando com o Prisma, onde ele não aceita a DATABASE_URL
fornecida, pode estar relacionado a como as variáveis de ambiente estão sendo interpretadas. Mesmo que as variáveis estejam corretas dentro do container, a maneira como você formou a DATABASE_URL
pode ser a causa do problema. Aqui estão algumas sugestões para resolver isso:
-
Verifique o arquivo
.env
: Certifique-se de que não há espaços ou caracteres invisíveis na linha daDATABASE_URL
. Pode ser útil reescrever a linha manualmente. -
Formatação da
DATABASE_URL
: O formato da suaDATABASE_URL
parece correto, mas talvez seja necessário usar as variáveis diretamente no formato correto. Experimente o seguinte formato sem interpolação de variáveis, já que o Prisma pode não estar interpretando corretamente:DATABASE_URL=postgresql://blog_local_user:blog_docker@localhost:5432/blog_local_db?schema=public
Certifique-se de que essa string está exatamente como acima, sem espaços desnecessários.
-
Variáveis de Ambiente no Prisma: Verifique se o Prisma está configurado para usar as variáveis de ambiente corretamente. A maneira mais comum é ter uma configuração similar a esta no seu arquivo
schema.prisma
:datasource db { provider = "postgresql" url = env("DATABASE_URL") }
-
Verifique o Docker Compose: No seu arquivo
docker-compose.yaml
, confirme que o serviço do PostgreSQL está configurado corretamente. Um exemplo básico de um serviço PostgreSQL seria:version: '3.8' services: db: image: postgres:latest environment: POSTGRES_USER: blog_local_user POSTGRES_PASSWORD: blog_docker POSTGRES_DB: blog_local_db ports: - "5432:5432"
-
Reinicie o Container: Depois de fazer as alterações, não esqueça de reiniciar o container para que as novas configurações sejam aplicadas. Você pode usar:
docker-compose down docker-compose up -d
-
Verifique a versão do Prisma: Se você estiver usando uma versão antiga do Prisma, considere atualizar para a versão mais recente, pois pode haver correções de bugs que resolvem problemas de interpretação de strings de conexão.
-
Debug com Prisma: Tente executar um comando Prisma com maior verbosidade para obter mais informações sobre o erro:
npx prisma migrate dev -- --verbose