postgresql
- Configuração
- Setup
- Comandos básicos no psql
- Guia prático para migrar e testar PostgreSQL no seu ambiente de desenvolvimento
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=catno shell.
- Se quiser permanente, antes de entrar no psql, rode
-
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.