Skip to content
This repository has been archived by the owner on Aug 7, 2018. It is now read-only.

Rotina periódica para dump do banco #465

Open
leonardofl opened this issue Apr 28, 2018 · 12 comments
Open

Rotina periódica para dump do banco #465

leonardofl opened this issue Apr 28, 2018 · 12 comments

Comments

@leonardofl
Copy link
Member

No description provided.

@leonardofl
Copy link
Member Author

Pra poder fazer o dump a gente executa o comando pg_dump. Pra poder ter esse comando no container eu tive que instalar na imagem base o pacote postgresql, que instala o postgresql completo =( O esperado seria que o pg_dump estivesse no postgresql-client, mas não estava.

Mas mesmo assim, na hora de executar o pg_dump no container, obtive o seguinte erro:

pg_dump: aborting because of server version mismatch

=(

@diraol
Copy link
Member

diraol commented Apr 29, 2018

Opa, não tinha visto essa issue e acabei comentando no próprio commit.
Reproduzo abaixo:

@leonardofl não sei se concordo com essa alteração.
Acho que idealmente deveríamos utilizar as prórprias features do Django para fazer dump da base de dados (ver (manage.py dumpdata)[https://docs.djangoproject.com/en/2.0/ref/django-admin/#dumpdata]).

Dessa forma não temos a necessidade de instalar todo o postgresql na imagem do Radar, (sendo que já usamos o postgresql completo numa imagem à parte).

@leonardofl
Copy link
Member Author

Opa, não sabia desse "manage.py dumpdata". Concordo que fica bem melhor, principalmente em vista das dificuldades enfrentadas... Em vez de publicar a imagem docker vou desfazer oq tinha feito e depois como usar esse dumpdata.

leonardofl added a commit that referenced this issue Apr 29, 2018
Na expectativa de utilizar manage.py dumpdata.
lopes05 added a commit to RadarParlamentar2018-1/radar that referenced this issue May 16, 2018
lopes05 added a commit to RadarParlamentar2018-1/radar that referenced this issue May 17, 2018
lopes05 added a commit to RadarParlamentar2018-1/radar that referenced this issue May 17, 2018
@lopes05
Copy link
Contributor

lopes05 commented Jun 1, 2018

@leonardofl tenta colocar o postgres de novo no Dockerfile, e no docker-compose troca a imagem do container do postgres pra 9.5.12-alpine, acho que isso pode resolver o problema de versões diferentes

@leonardofl
Copy link
Member Author

Legal, boa ideia. Vou tentar. Valeu.

@diraol: considerando a estratégia de gerar um sql vc enxerga algum outro caminho p não ter q instalar o postgres na VM do Django?

Por ora, eu estou mais propenso a seguir por esse caminho (claro, se alguém achar um jeito melhor... Melhor :)

@leonardofl
Copy link
Member Author

Alterei a imagem do postgres para 9.5.12 e funcionou!!! Valeu @lopes05 !!!

Sempre um pouco triste fazer downgrade, mas acho que nesse caso é o preço a se pagar.

Obs: eu fiz o teste logando no container (sh) e executando o comando pg_dump. Agora tem que testar direitinho a classe DbDumper.

[]s

@leonardofl
Copy link
Member Author

Droga, esqueci de referenciar a issue. Commit que altera versão do postgres: 0adf8d1

@diraol
Copy link
Member

diraol commented Jun 2, 2018

@leonardofl não entendi exatamente qual foi o problema que demandou fazer o downgrade, mas acho que valem alguns mapeamentos:

O container que estava sendo utilizado para o radar é o python:3.6-alpine.
Este, por sua vez, é baseado no alpine3.7.
Olhando no repositório de pacotes do Alpine, vemos que a versão do postgresql disponível para alpine 3.7 é o 10.4-r0 (server e client).

Assim, acho que se o problema era uma incompatibilidade entre as versões do postgresql-client e "container", poderíamos tentar colocar todos na versã0 10.4 e ver se funciona, o que me parece melhor do que tentar voltar à 9.X. =)

@leonardofl
Copy link
Member Author

O motivo foi

Mas mesmo assim, na hora de executar o pg_dump no container, obtive o seguinte erro:

pg_dump: aborting because of server version mismatch

Mas parece q vale sim a tentativa q vc falou!

Valeus

@leonardofl
Copy link
Member Author

Acho que funcionou @diraol ! Valeu!

Único detalhe que achei mais digno de nota é que usando FROM python:3.7-alpine não funcionava: manifest for python:3.7-alpine not found. Por isso usei FROM python:3.7-rc-alpine.

@diraol
Copy link
Member

diraol commented Jun 4, 2018

@leonardofl perceba que o meu comentário foi:
a imagem python:3.6-alpine usa, como base, a imagem alpine:3.7.
E não que precisamos usar python:3.7 (foi só uma infeliz coincidência numérica das coisas!)

python:3.7-alpine ou python:3.7-rc-apline são referentes à versão 3.7 do python, que ainda não foi lançada de forma "stable" e definitiva.

@leonardofl
Copy link
Member Author

Eh, parece q me confundi c isso :/

hpe95 pushed a commit to RadarParlamentar2018-1/radar that referenced this issue Jul 2, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

3 participants