incolume-jedi / coding-dojo

Aqui é mantido um repositório com as soluções que trabalhamos no dojo de codificação da Guilda JEDI (Junta Especializada de Desenvolvimento e Inovação) em https://discord.gg/eBNamXVtBW
https://incolume-jedi.github.io/coding-dojo/
The Unlicense
2 stars 4 forks source link

[new-dojo] Carregamento de dados no postgres em docker (Load data into postgres over docker) #47

Closed britodfbr closed 1 year ago

britodfbr commented 2 years ago

Coding Dojo

Guilda JEDI Incolume - Grupo Python Incolume


Problema

Carregamento de dados no postgres em docker

Project structure

data/
  datasource.csv
db/
  scripts/
    1_init.sql
    2_copy.sql
  Dockerfile
docker-compose.yml

Files

  1. CSV file is located in data folder inside of the project.

  2. In the project folder there is the following docker-compose.yml file:

version: '3.3'

services:
  db:
    build: ./db
    container_name: postgres
    ports:
      - "5431:6666"
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres
      - POSTGRES_DB=db_name
    volumes:
      - ./data:/data
  1. Dockerfile contains:
FROM postgres:alpine
ADD scripts/1_init.sql /docker-entrypoint-initdb.d
ADD scripts/2_copy.sql /docker-entrypoint-initdb.d
RUN chmod a+r /docker-entrypoint-initdb.d/*
EXPOSE 6666
  1. 1_init.sql body:

    CREATE TABLE table_name
    (
    --statement body
    );
  2. And 2_copy.sql:

COPY table_name FROM '/data/datasource.csv' DELIMITER ',' CSV HEADER;

Explanation

Referências

https://stackoverflow.com/a/56774266/5132101

britodfbr commented 1 year ago

Atividade própria para Acadêmia Jedi.

migrada para https://github.com/incolume-jedi/academia-jedi/issues/25