Conectando o PostgreSQL com Django no Ubuntu
Tags: python, django, postgres, webdev
Published: 2020-01-02 17:53:35


Fazer a conexão entre o django e o Postgres não é uma tarefa difícil mas se tratando de Linux, você vai precisar digitar algumas linhas de comando para fazer a instalação desse SGBD.
Instalando o PostgreSQL

Para começar, você precisa adicionar o repositório apt do Postgres ao seu sistema. Comece importando a chave GPG para os pacotes do Postgres com os seguintes comandos:

```bash
sudo apt-get install wget ca-certificateswget — quiet -0 — https://postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
```

Agora adicione o repositorio no seu sistema

```bash
sudo sh -c ‘echo “deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs` -pgdg main” >> /etc/apt/sources.list.d/pgdg.list’
```

Sim eu sei, são comandos muito grandes, então não tenha vergonha e copie e cole no seu terminal ;).

Agora para finalmente instalar o Postgres, digite (ou copie) os seguintes comandos:

```bash
sudo apt-get updatesudo apt-get install postgresql postgresql-contrib
```

E pronto, depois disso o Postgres já deve estar instalado na sua maquina.

## Criando o banco de dados

Para criar um banco de dados dentro do Postgres, primeiro conecte-se ao Postgres:

```bash
sudo su — postgrespsql
```

Crie um usuário e senha para seu banco:

```sql
CREATE USER 'root' WITH PASSWORD 'root';
```

Substitua o nome e senha root para qual você desejar.

Não se esqueça de colocar o ponto-e-vírgula no final de todo comando que digitar.

Agora crie o banco em si:

```sql
CREATE DATABASE django_postegres WITH OWNER root;
```

Esse comando vai criar o banco de dados e vai dar permissões para o usuário que você criou no passo anterior.

Digite `\q` e em seguida `exit` para sair do postgres

## Conectando com o Django

Com o Postgres instalado e com as informações de usuário, senha e banco de dados, basta instalar o pacote do postgres via pip.

```bash
pip install psycopg2-binary
```

Agora vá no settings.py do seu projeto django para editar o dicionário `DATABASES`. Antes assim:

```python
DATABASES = {   
    'default': {        
    'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}
```


Agora assim:

```python
DATABASES = {
    'default': {
       'ENGINE': 'django.db.backends.postgresql_psycopg2',
       'NAME': 'django_postgres',
       'USER': 'root',
       'PASSWORD': 'root',
       'HOST': 'localhost',
       'PORT': 5432
      }
   }
```

A `ENGINE` indica qual driver vai ser usado para conectar com o banco de dados. No nosso caso vai ser o que veio com o `psycopg2`. O `NAME` vai ser o nome do banco de dados que foi criado. O `USER` vai ser o nome do usuário com permissões sobre nosso banco. O `PASSWORD` é a senha do usuário. O `HOST` é onde o banco está hospedado, no nosso caso está local, então será o localhost. E o `PORT` será a padrão do Postgres, a 5432.
Migrações

Depois disso tudo basta criar e aplicar suas migrações:

```bash
python manage.py makemigrations
```

```bash
python manage.py migrate
```

## Conclusão

Deu para ver que esse processo não é dificil, só um pouco trabalhoso por causa dos comandos longos do linux mas nada que não se possa pegar prática.

Referências:

https://tecadmin.net/install-postgresql-server-on-ubuntu/

https://medium.com/@lucas_souto/integrando-django-com-postgresql-58b3520ddf6e