postgresql_django

Rédigé par Paulo Aucun commentaire
Classé dans : Python Mots clés : django, postgresql

Utilisation de postgresql avec django

  • installation de postgresql sur fedora/centos
    # installation de postgresql 12 sur Fedora 31
    sudo dnf install https://download.postgresql.org/pub/repos/yum/reporpms/   \
                             F-31-x86_64/pgdg-fedora-repo-latest.noarch.rpm
    sudo dnf install postgresql12-server postgresql12
    
    # installation de psycopg2
    sudo dnf install python-psycopg2
  • initialisation de la base postgresql

    # initialisation de la base postgresql
    sudo /usr/pgsql-12/bin/postgresql-12-setup initdb
    
    # pour autoriser l'accés à distance
    #  modifier: 
    - /var/lib/pgsql/12/data/postgresql.conf 
      listen_adresses = '*' pour toutes les interfaces ou '@IP du serveur' 
    - /var/lib/pgsql/12/data/pg_hba.conf
      de n'importe ou : host all all 0.0.0.0/0 md5
      seulement d'un reseau : host all all 10.10.10.0/24 md5
    
    # modifier le password de l'admin
    sudo su - postgres
    psql -c "alter user postgres with password 'StrongPassword'"
    
    # modification méthode d'autentification
    # sinon django hurle sa mêre au lancement !!!!
    fichier /var/lib/pgsql/12/data/pg_hba.conf
       local   all   all   peer --> local   all	all	md5
       host   all   all 127.0.0.1/32  ident --> host   all   all 127.0.0.1/32  md5
    

     

Configuration de django

  • création de la base (ex: ma_base)
    # création de la base de donnée (ex: ma_base)
    sudo su - postgres
      psql
        CREATE DATABASE ma_base;
        CREATE USER mon_user WITH PASSWORD 'password';
        ALTER ROLE mon_user SET client_encoding TO 'utf8';
        GRANT ALL PRIVILEGES ON DATABASE ma_database TO mon_user;
        \q
  • création d'un projet django
    # création d'un répertoire pour futur projet et se positionner à l'intérieur
    mkdir django/projets/mon_projet&& cd django/projets/mon_projet
    
    # création du projet
    django-admin.py startproject mon_projet
    
    # config de la database du projet dans Django (settings.py)
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.postgresql',
            'NAME': 'ma_base',
            'USER': 'mon_user',
            'PASSWORD': 'mon_password',
            'HOST': '',
            'PORT': '5432',
        }
    }
    
    # migration et lancement du projet
    ./manage.py makemigrations
    ./manage.py migrate
    ./manage.py runeserver
    
    # création du superuser (pour accés interface admin par ex...)
    ./manage.py creatsuperuser
    

     

Configuration pour DBeaver 

  • modif du fichier /var/lib/pgsql/12/data/pg_hba.conf
# extrait du pg_hba.conf
...
local    all    all    md5
host    all    all    127.0.0.1/32    md5

# relancer postgresql
sudo systemctl restart postgresql-12.service

 

Sources:

Les commentaires sont fermés.