Résolue

Docker postgres pycharm

# Bases de données # PyCharm # docker

Bonjour,

J'utilise pycharm comme éditeur et je commence à utiliser les outils d'intégration disponible. J'ai déjà utilisé pycharm avec docker, également j'ai déjà réussi à connecter pycharm et une base de donnée sqlite.

Mon problème et que je n'arrive pas à connecter pycharm avec un base de donnée postgres dans un container docker.

J'ai toujours l'erreur suivante :

> Connection to localhost:5432 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.

En image la configuration de pycharm, on peut y voir également mon fichier d'environnement et les crédits de docker, on peut voir également que le container de la base de donnée est actif.

J'ai fait pas mal de recherche google sur le sujet, je n'ai rien trouvé pour le moment.

Hello,

tu utilises 2 Docker différents ? Un pour ton app django et un pour la BD ?

Si oui le problème peut etre qu'ils ne sont pas sur le même networks et donc ne peuvent communiquer. Je te conseille de lancer les 2 conatiners via docker-compose qui mettra automatiquement tes 2 containers sur le même network.
Dis moi si tu ne connais pas docker-compose.

Salut,

J'utilise bien 2 containers différents. Cela fonctionne sans soucis. J'aimerai simplement pouvoir visualiser ma base de donnée en passsant par pycharm. Je ne pense pas que le problème est un lien avec un problème de network. Même sans lancer le docker contenant mon app, je devrais pouvoir visualiser ma base de donnée. En tout cas c'est le cas sans passer par pycharm. Et de toute façon j'utilise docker-compose.

Mon but est de pouvoir profiter pleinement de la puissance de pycharm, sinon autant rester sur VS code qui est gratuit.

version: '3.8'

services:
  blog:
    build: .
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/usr/src/app/
    ports:
      - 8009:8000
    env_file:
      - .env.dev
    depends_on:
      - rabbitmq
      - blog-db

  celery:
    build: .
    command: celery -A config worker -l info
    volumes:
      - .:/usr/src/app/
    depends_on:
      - blog
      - rabbitmq

  blog-db:
    image: postgres:14-alpine
    volumes:
      - postgres_data:/var/lib/postgresql/data
    environment:
      - POSTGRES_USER=blog
      - POSTGRES_PASSWORD=blog
      - POSTGRES_DB=blog_dev

  rabbitmq:
    container_name: "rabbitmq"
    image: rabbitmq:management
    ports:
      - 5672:5672
      - 15672:15672

volumes:
  postgres_data:

Oh ok j'avais pas compris.

Je ne vois pas de ports exposés dans ton service de blog-db dans otn docker compose comme tu le fais pour ton service blog et rabbit. Du coup peut être que c'est la raison pour laquelle tu n'arrives pas à y accéder depuis l'extérieur , c'est à dire depuis pycharm.

Essayes d'ajouter dans le blog-db

    ports:
      - 5432:5432

Aussi dans l'url de connexion essayes blog-db au lieude localhost (le nom du service peut faire office d'url de connexion).

Bonjour, j'ai fait comme conseiller en exposant le port dans le docker-compose, et changer l'host dans la config de pycharm mais j'ai tjours une erreur à la connexion.

Thibault houdon

Mentor

Salut Flavien !

Je suis loin d'être expert en Docker, mais je remarque que dans Database tu as mis postgres au lieu du nom de ta base de données (blog_dev).

Je me dis que le problème peut venir de là.

Malheuresment non ce n'est pas le problème :'(

Ok j'ai enfin trouvé.

J'ai remplacé le Host : blog-db par loacalhost. Je n'ai aucune idée de comment pycharm réussit à trouver mon container docker contenant la base de donnée du coup mais je retrouve bien ma base et toutes mes tables.

Inscris-toi

(c'est gratuit !)

Inscris-toi

Tu dois créer un compte pour participer aux discussions.

Créer un compte

Rechercher sur le site

Formulaire de contact

Inscris-toi à Docstring

Pour commencer ton apprentissage.

Tu as déjà un compte ? Connecte-toi.