Skip to main content

postgresql

Configuração

Importante!!!

# Acesse o Postgres com o superusuário (postgres)
sudo -u postgres psql

devuser
123456mudar

psql -U devuser -d botdb
\d strategies
\d rules

Setup

# Descobrir a versão instalada
psql --version
psql (PostgreSQL) 16.10 (Ubuntu 16.10-0ubuntu0.24.04.1)

# Verificar se o serviço está rodando
pg_isready
# ou
sudo systemctl status postgresql

# Reiniciar o serviço do PostgreSQL
sudo systemctl restart postgresql

# Editar arquivo de configuração
sudo nano /etc/postgresql/16/main/pg_hba.conf

# Alterar:

# Database administrative login by Unix domain socket
local all postgres peer
#local all all md5

# TYPE DATABASE USER ADDRESS METHOD

# "local" is for Unix domain socket connections only
#local all all peer
local all all scram-sha-256

# criar um usuário de desenvolvimento com acesso total no PostgreSQL:
sudo -u postgres psql
CREATE USER devuser WITH PASSWORD '123456mudar';
ALTER USER devuser WITH SUPERUSER;
CREATE DATABASE devuser OWNER devuser;
exit

# Acesse o prompt do Postgres
psql -U devuser
# ou, se já tem um banco:
psql -U devuser -d botdb

# Criar o BD
CREATE DATABASE botdb;

Comandos básicos no psql

  • Listar bancos:
    \l
  • Conectar a um banco:
    \c nome_do_banco
  • Listar tabelas:
    \dt
    \d strategies
    \d+ strategies
  • Criar banco:
    CREATE DATABASE nome_do_banco;
  • Criar usuário:
    CREATE USER meu_user WITH PASSWORD 'minha_senha';
  • Dar permissão:
    GRANT ALL PRIVILEGES ON DATABASE nome_do_banco TO meu_user;
  • Sair:
    \q
  • Desabilitar o pager: \pset pager off
    • Se quiser permanente, antes de entrar no psql, rode export PAGER=cat no shell.
  • Ocultar os títulos das colunas no resultado da query \t on

Guia prático para migrar e testar PostgreSQL no seu ambiente de desenvolvimento

Testar conexão do Node.js

✅ Instalar package no projeto

pnpm add pg
pnpm add -D @types/pg

✅ Crie um arquivo test-pg.js:

const { Client } = require('pg');
const client = new Client({
connectionString: 'postgres://devuser:123456mudar@localhost:5432/devuser'
});
client.connect()
.then(() => client.query('SELECT NOW()'))
.then(res => {
console.log(res.rows);
return client.end();
})
.catch(err => console.error('Erro:', err));

Executar:

node test-pg.js

Se aparecer a data/hora, está tudo ok!

Variáveis de ambiente

✅ Coloque sua string de conexão em .env.local:

DATABASE_URL=postgres://devuser:123456mudar@localhost:5432/devuser

E use no código:

const client = new Client({ connectionString: process.env.DATABASE_URL });

Aqui estão as instruções simplificadas para criar o banco e as tabelas manualmente usando PostgreSQL:

1. Abrir o psql

psql -U devuser

2. Criar o banco de dados No prompt do psql:

CREATE DATABASE botdb;

3. Conectar ao banco

\c botdb

4. Criar as tabelas Cole no psql:

CREATE TABLE strategies (
id SERIAL PRIMARY KEY,
descr TEXT NOT NULL,
created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE rules (
id SERIAL PRIMARY KEY,
strategy_id INTEGER NOT NULL REFERENCES strategies(id) ON DELETE CASCADE,
descr TEXT NOT NULL,
condition_json TEXT NOT NULL,
actions_json TEXT NOT NULL,
created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP
);

CREATE INDEX idx_rules_strategy_id ON rules(strategy_id);

Pronto! Com isso, o banco e as tabelas estarão criados e prontos para uso no seu projeto.