- Criar conta e entrar na Hetzner Cloud
- Criar novo servidor - Ubuntu 20.04
- Comando para conectar no servidor:
ssh [email protected]
- Atualizar Servidor:
sudo apt update && sudo apt upgrade
- Baixar Docker:
sudo apt install docker.io
- Instalando a biblioteca do PostgreSQL para Linux:
sudo apt install libpq-dev
- Vamos rodar o PostgreSQL
sudo docker run --name tutorial -p 5433:5432 \
-e POSTGRES_PASSWORD=senha123 \
-d postgres
# OBSERVAÇÃO
# Se precisar entrar na Shell do Postgres, usar o comando:
sudo docker exec -it tutorial psql -U postgres
# Pra sair é "Ctrl + D"
- Baixar o executável PostgREST:
wget https://github.com/PostgREST/postgrest/releases/download/v7.0.1/postgrest-v7.0.1-linux-x64-static.tar.xz
- Extraindo o PostgREST:
tar -xJf postgrest-v7.0.1-linux-x64-static.tar.xz
- Criar arquivo de configuração:
nano postgrest.conf
db-uri = "postgres://postgres:senha123@localhost:5433/postgres"
db-schema = "public"
db-anon-role = "postgres":
- Baixar Azure Data Studio
- Baixar a extensão "PostgreSQL"
- Ir em New Connection
A senha é a mesma que usamos pra criar a base de dados no docker, no nosso caso "senha123"
OBS: Se não usou um servidor, IP é o padrão localhost (127.0.0.1)
DROP TABLE IF EXISTS modalidades;
CREATE TABLE modalidades (
id INTEGER PRIMARY KEY,
descricao TEXT
);
DROP TABLE IF EXISTS cursos;
CREATE TABLE cursos (
id INTEGER PRIMARY KEY,
nome TEXT,
tipo TEXT,
periodo TEXT,
vagas INTEGER,
campus TEXT,
cidade TEXT,
estado TEXT,
universidade TEXT,
sigla TEXT
);
DROP TABLE IF EXISTS resultados;
CREATE TABLE resultados (
id_curso INTEGER,
nome_curso TEXT,
id_modalidade INTEGER,
vagas INTEGER,
nota_minima DOUBLE PRECISION,
bonus DOUBLE PRECISION,
data_informacao TEXT
PRIMARY KEY (id_curso, id_modalidade)
);
- Usar dados do GitHub do Camalearning
- Dentro do computador onde o PostgreSQL estiver instalado, execute os seguintes comandos
# Criando diretório para os dados
mkdir /tmp/csv
cd /tmp/csv
# Baixando os dados
wget https://raw.githubusercontent.com/jj-marinho/camalearning-databases/master/dados/resultados.csv
wget https://raw.githubusercontent.com/jj-marinho/camalearning-databases/master/dados/modalidades.csv
wget https://raw.githubusercontent.com/jj-marinho/camalearning-databases/master/dados/cursos.csv
# Copiando arquivos pro container docker
docker cp . tutorial:/data/
# Voltando para o diretório base
cd ~
- Executar a seguinte Query para importar os dados
COPY modalidades
FROM '/data/modalidades.csv'
DELIMITER ';'
CSV HEADER;
COPY cursos
FROM '/data/cursos.csv'
DELIMITER ';'
CSV HEADER;
COPY resultados
FROM '/data/resultados.csv'
DELIMITER ';'
CSV HEADER;
- É só ir na pasta onde está o PostgREST e o postgrest.conf e executar!
./postgrest postgrest.conf
- A partir daqui, as queries que a gente fez estão disponíveis na pasta
queries
do repositório!