[pgbr-geral] Bloquear usuário durante atualização

2015-11-16 Por tôpico Danilo Silva
Pessoal,

Para que eu possa atualizar o sistema, é necessário que nenhum usuário
esteja logado no banco. A minha dúvida é: apenas o comando ALTER DATABASE
foo CONNECTION LIMIT 0 resolveria? Se o usuário já estiver logado, após
rodado o comando descrito, esse usuário conseguirá executar algum comando?

[]s
Danilo
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Bloquear usuário durante atualização

2015-11-16 Por tôpico Fernando Cambiaghi
>
> Você terá de "chutar" os usuários fora da base, por exemplo:
> SELECT pg_terminate_backend (pid) FROM pg_stat_activity;
> Mas é bem "à força" isso, se é que me entende, tipo, transações abertas
> vão ser interrompidas, o banco não vai esperar commit ou rollback.
>
> Eu faço como o Flavio citou para desconectar os usuários, com uma pequena
diferença...
SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE pid <>
pg_backend_pid()
Com isso apenas o meu processo permanece conectado.
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Gerar dicionário de dados

2015-11-16 Por tôpico Flavio Henrique Araque Gurgel

Pessoal,

É possível gerarmos um dicionário de dados através das tabelas de
catálogos? Se sim, qual seria o comando.


pg_dump --schema-only nome_do_seu_banco


Utilizando ferramentas de terceiros, qual seria a mais indicada para
esta geração?


Precisa não.
Mas eu deixo o Dutra te explicar melhor, ele é o mestre da documentação 
de dados, tipo, já mostrou suas astúcias mundo afora.


[]s
Flavio Gurgel
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

[pgbr-geral] Gerar dicionário de dados

2015-11-16 Por tôpico Danilo Silva
Pessoal,

É possível gerarmos um dicionário de dados através das tabelas de
catálogos? Se sim, qual seria o comando.

Utilizando ferramentas de terceiros, qual seria a mais indicada para esta
geração?

[]s
Danilo
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Bloquear usuário durante atualização

2015-11-16 Por tôpico Flavio Henrique Araque Gurgel



Para que eu possa atualizar o sistema, é necessário que nenhum usuário
esteja logado no banco. A minha dúvida é: apenas o comando ALTER
DATABASE foo CONNECTION LIMIT 0 resolveria? Se o usuário já estiver
logado, após rodado o comando descrito, esse usuário conseguirá executar
algum comando?


Infelizmente você não vai conseguir fazer o que quer, pois os usuários 
já logados poderão continuar trabalhando, eles não conseguirão porém 
fazer novas conexões.


Você terá de "chutar" os usuários fora da base, por exemplo:
SELECT pg_terminate_backend (pid) FROM pg_stat_activity;
Mas é bem "à força" isso, se é que me entende, tipo, transações abertas 
vão ser interrompidas, o banco não vai esperar commit ou rollback.


[]s
Flavio Gurgel

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Gerar dicionário de dados

2015-11-16 Por tôpico Alexsander Rosa
Em 16 de novembro de 2015 13:46, Flavio Henrique Araque Gurgel <
fha...@gmail.com> escreveu:

>
>> Utilizando ferramentas de terceiros, qual seria a mais indicada para
>> esta geração?
>>
>
> Precisa não.
> Mas eu deixo o Dutra te explicar melhor, ele é o mestre da documentação de
> dados, tipo, já mostrou suas astúcias mundo afora.
>
>
Atualmente usamos o *SchemaSpy*. Usávamos o *Autodoc* antes.
Acho que vale a pena, principalmente por causa dos diagramas.

-- 
Atenciosamente,
Alexsander da Rosa
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Gerar dicionário de dados

2015-11-16 Por tôpico Guimarães Faria Corcete DUTRA , Leandro
2015-11-16 13:41 GMT-02:00 Danilo Silva :
>
> É possível gerarmos um dicionário de dados através das tabelas de catálogos?

Você saberia explicar melhor o que você quereria num dicionário?  Ou
só o básico?


-- 
skype:leandro.gfc.dutra?chat  Yahoo!: ymsgr:sendIM?lgcdutra
+55 (61) 3546 7191  gTalk: xmpp:leand...@jabber.org
+55 (61) 9302 2691ICQ/AIM: aim:GoIM?screenname=61287803
BRAZIL GMT−3  MSN: msnim:chat?contact=lean...@dutra.fastmail.fm
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Gerar dicionário de dados

2015-11-16 Por tôpico Guimarães Faria Corcete DUTRA , Leandro
2015-11-16 13:46 GMT-02:00 Flavio Henrique Araque Gurgel :
> Mas eu deixo o Dutra te explicar melhor, ele é o mestre da documentação de
> dados, tipo, já mostrou suas astúcias mundo afora.

Estou enferrujadíssimo, Gurgel… mas creio que minha apresentação ainda
está por aí, disponível, _O elefante arborícola_.

Para resumir, o AutoDoc, o SQL::Fairy e algumas outras ferramentas
geram ótimos diagramas; e podem-se usar ferramentas de programação
literária como o noweb para criar documentos em LaTeX, HTML ou outros
formatos que ao mesmo tempo definem o modelo, o documentam e
incorporam gràficos de alta qualidade, automaticamente gerados.  Exige
certa preparação, mas o resultado é surpreendente.

Só para documentar o que já existe, costuma bastar AutoDoc, SQL::Fairy
ou equivalentes.


-- 
skype:leandro.gfc.dutra?chat  Yahoo!: ymsgr:sendIM?lgcdutra
+55 (61) 3546 7191  gTalk: xmpp:leand...@jabber.org
+55 (61) 9302 2691ICQ/AIM: aim:GoIM?screenname=61287803
BRAZIL GMT−3  MSN: msnim:chat?contact=lean...@dutra.fastmail.fm
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Gerar dicionário de dados

2015-11-16 Por tôpico Guimarães Faria Corcete DUTRA , Leandro
2015-11-16 14:27 GMT-02:00 Alexsander Rosa :
>
> Atualmente usamos o SchemaSpy. Usávamos o Autodoc antes.

Pode explicar o que levou a abandonar um e adotar outro, para nosso benefício?


-- 
skype:leandro.gfc.dutra?chat  Yahoo!: ymsgr:sendIM?lgcdutra
+55 (61) 3546 7191  gTalk: xmpp:leand...@jabber.org
+55 (61) 9302 2691ICQ/AIM: aim:GoIM?screenname=61287803
BRAZIL GMT−3  MSN: msnim:chat?contact=lean...@dutra.fastmail.fm
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Function

2015-11-16 Por tôpico Fabrízio de Royes Mello
On 16-11-2015 11:12, Euler Taveira wrote:
> On 16-11-2015 08:31, Bruno Felipe wrote:
>> Mais onde ele ficaria melhor para ler e converter tabela a tabela?
>>
> Eu não entendi... mas o laço ficaria:
> 
> CREATE OR REPLACE FUNCTION teste() RETURNS SETOF record
> LANGUAGE plpgsql
> AS $$
> DECLARE
> tabela CURSOR IS SELECT relname FROM pg_stat_user_tables ORDER BY relname;
> BEGIN
> FOR i IN tabela LOOP
> EXECUTE 'COPY (SELECT row_to_json(t) FROM (SELECT * FROM ' ||
> quote_ident(i.relname) || ') t) TO ''/tmp/' || i.relname || '.sql''';
> END LOOP;
> END;
> $$;
> 

Porque aquela sub-query? Apenas assim não resolve?

EXECUTE 'COPY (SELECT row_to_json(t) FROM '||quote_ident(i.relname)||'
t) TO ''/tmp/' || i.relname || '.sql''';

Att,

-- 
   Fabrízio de Royes Mello Timbira - http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento



signature.asc
Description: OpenPGP digital signature
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Function

2015-11-16 Por tôpico Euler Taveira

On 16-11-2015 08:31, Bruno Felipe wrote:

Mais onde ele ficaria melhor para ler e converter tabela a tabela?


Eu não entendi... mas o laço ficaria:

CREATE OR REPLACE FUNCTION teste() RETURNS SETOF record
LANGUAGE plpgsql
AS $$
DECLARE
tabela CURSOR IS SELECT relname FROM pg_stat_user_tables ORDER BY relname;
BEGIN
FOR i IN tabela LOOP
		EXECUTE 'COPY (SELECT row_to_json(t) FROM (SELECT * FROM ' || 
quote_ident(i.relname) || ') t) TO ''/tmp/' || i.relname || '.sql''';

END LOOP;
END;
$$;


--
   Euler Taveira   Timbira - http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Function

2015-11-16 Por tôpico Bruno Felipe
Era isso mesmo Euler, muito obrigado.

Abraços



Enviado com MailTrack


2015-11-16 11:12 GMT-02:00 Euler Taveira :

> On 16-11-2015 08:31, Bruno Felipe wrote:
>
>> Mais onde ele ficaria melhor para ler e converter tabela a tabela?
>>
>> Eu não entendi... mas o laço ficaria:
>
> CREATE OR REPLACE FUNCTION teste() RETURNS SETOF record
> LANGUAGE plpgsql
> AS $$
> DECLARE
> tabela CURSOR IS SELECT relname FROM pg_stat_user_tables ORDER BY relname;
> BEGIN
> FOR i IN tabela LOOP
> EXECUTE 'COPY (SELECT row_to_json(t) FROM (SELECT * FROM '
> || quote_ident(i.relname) || ') t) TO ''/tmp/' || i.relname || '.sql''';
> END LOOP;
> END;
> $$;
>
>
>
> --
>Euler Taveira   Timbira - http://www.timbira.com.br/
>PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>



-- 
*Bruno da Cunha Felipe*
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Gerar dicionário de dados

2015-11-16 Por tôpico Guimarães Faria Corcete DUTRA , Leandro
2015-11-16 13:41 GMT-02:00 Danilo Silva :
>
> É possível gerarmos um dicionário de dados através das tabelas de catálogos?

Você saberia explicar melhor o que você quereria num dicionário?  Ou
só o básico?


-- 
skype:leandro.gfc.dutra?chat  Yahoo!: ymsgr:sendIM?lgcdutra
+55 (61) 3546 7191  gTalk: xmpp:leand...@jabber.org
+55 (61) 9302 2691ICQ/AIM: aim:GoIM?screenname=61287803
BRAZIL GMT−3  MSN: msnim:chat?contact=lean...@dutra.fastmail.fm
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Gerar dicionário de dados

2015-11-16 Por tôpico Alexsander Rosa
Em 16 de novembro de 2015 16:02, Guimarães Faria Corcete DUTRA, Leandro <
l...@dutras.org> escreveu:

> > No SchemaSpy são vários arquivos, um pra cada tabela, com mais detalhes.
> > Tem até um mini-diagrama mostrando os relacionamentos mais próximos.
> > E o resultado é interativo, dá para mostrar mais ou menos detalhes.
>
> Legal, muito bom.
>
>
> > Veja esse exemplo do próprio site deles:
> > http://schemaspy.sourceforge.net/sample/tables/book.html
>
> Faz tempo que não vejo um projeto ativo no Source forge.
>
>
Não sei se dá pra chamar de ativo, o último release (5.0.0) é de 2010.
Mas funciona. :-)

-- 
Atenciosamente,
Alexsander da Rosa
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Gerar dicionário de dados

2015-11-16 Por tôpico Alexsander Rosa
Em 16 de novembro de 2015 14:59, Guimarães Faria Corcete DUTRA, Leandro <
l...@dutras.org> escreveu:

> 2015-11-16 14:27 GMT-02:00 Alexsander Rosa :
> >
> > Atualmente usamos o SchemaSpy. Usávamos o Autodoc antes.
>
> Pode explicar o que levou a abandonar um e adotar outro, para nosso
> benefício?
>
>
No autodoc são poucos arquivos enormes, a navegação é por hashtags HTML.
Os diagramas são enormes, com centenas de tabelas vira um emaranhado.
Do ponto de vista estético ele também deixa bastante a desejar.

No SchemaSpy são vários arquivos, um pra cada tabela, com mais detalhes.
Tem até um mini-diagrama mostrando os relacionamentos mais próximos.
E o resultado é interativo, dá para mostrar mais ou menos detalhes.
Veja esse exemplo do próprio site deles:
http://schemaspy.sourceforge.net/sample/tables/book.html


-- 
Atenciosamente,
Alexsander da Rosa
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Gerar dicionário de dados

2015-11-16 Por tôpico Guimarães Faria Corcete DUTRA , Leandro
2015-11-16 16:40 GMT-02:00 Alexsander Rosa :
>
> Não sei se dá pra chamar de ativo, o último release (5.0.0) é de 2010.

Preocupante.  Será que não migrou para alhures?


> Mas funciona. :-)

Bom!

O ideal seria evoluir, até para acompanhar a evolução do SQL.  Mas
esta é uma evolução lenta, e geralmente o que se quer é o básico.


-- 
skype:leandro.gfc.dutra?chat  Yahoo!: ymsgr:sendIM?lgcdutra
+55 (61) 3546 7191  gTalk: xmpp:leand...@jabber.org
+55 (61) 9302 2691ICQ/AIM: aim:GoIM?screenname=61287803
BRAZIL GMT−3  MSN: msnim:chat?contact=lean...@dutra.fastmail.fm
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Gerar dicionário de dados

2015-11-16 Por tôpico Guimarães Faria Corcete DUTRA , Leandro
2015-11-16 15:59 GMT-02:00 Alexsander Rosa :
>
> No autodoc são poucos arquivos enormes, a navegação é por hashtags HTML.
> Os diagramas são enormes, com centenas de tabelas vira um emaranhado.

Eu resolvia isso gerando dumps parciais, para o Auto doc gerar vários diagramas.


> No SchemaSpy são vários arquivos, um pra cada tabela, com mais detalhes.
> Tem até um mini-diagrama mostrando os relacionamentos mais próximos.
> E o resultado é interativo, dá para mostrar mais ou menos detalhes.

Legal, muito bom.


> Veja esse exemplo do próprio site deles:
> http://schemaspy.sourceforge.net/sample/tables/book.html

Faz tempo que não vejo um projeto ativo no Source forge.


-- 
skype:leandro.gfc.dutra?chat  Yahoo!: ymsgr:sendIM?lgcdutra
+55 (61) 3546 7191  gTalk: xmpp:leand...@jabber.org
+55 (61) 9302 2691ICQ/AIM: aim:GoIM?screenname=61287803
BRAZIL GMT−3  MSN: msnim:chat?contact=lean...@dutra.fastmail.fm
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

[pgbr-geral] unsubscribe

2015-11-16 Por tôpico Antônio Galery
Grato 


Logo TRANSFACIL Antônio Galery 
Sistema Central 
Tel.: 31 3248-7026 
E-mail: gal...@transfacil.com.br 
Acesse: www.transfacil.com.br 

Esta mensagem, incluindo seus anexos, pode conter informações privilegiadas 
e/ou de caráter confidencial, não podendo ser retransmitida sem autorização do 
remetente. Se você não é o destinatário ou pessoa autorizada a recebê-la, 
informamos que o seu uso, divulgacão, cópia ou arquivamento sao proibidos. 
Portanto, se você recebeu esta mensagem por engano, por favor, nos informe 
respondendo imediatamente a este e-mail e em seguida apague-a. 

Antes de imprimir, pense em seu compromisso com o Meio Ambiente. 
- Mensagem original -

De: "Alexsander Rosa"  
Para: "Comunidade PostgreSQL Brasileira"  
Enviadas: Segunda-feira, 16 de novembro de 2015 15:59:42 
Assunto: Re: [pgbr-geral] Gerar dicionário de dados 




Em 16 de novembro de 2015 14:59, Guimarães Faria Corcete DUTRA, Leandro < 
l...@dutras.org > escreveu: 


2015-11-16 14:27 GMT-02:00 Alexsander Rosa < alexsander.r...@gmail.com >: 
> 
> Atualmente usamos o SchemaSpy. Usávamos o Autodoc antes. 

Pode explicar o que levou a abandonar um e adotar outro, para nosso benefício? 





No autodoc são poucos arquivos enormes, a navegação é por hashtags HTML. 
Os diagramas são enormes, com centenas de tabelas vira um emaranhado. 
Do ponto de vista estético ele também deixa bastante a desejar. 


No SchemaSpy são vários arquivos, um pra cada tabela, com mais detalhes. 
Tem até um mini-diagrama mostrando os relacionamentos mais próximos. 
E o resultado é interativo, dá para mostrar mais ou menos detalhes. 
Veja esse exemplo do próprio site deles: 
http://schemaspy.sourceforge.net/sample/tables/book.html 

  

-- 

Atenciosamente, 
Alexsander da Rosa 


___ 
pgbr-geral mailing list 
pgbr-geral@listas.postgresql.org.br 
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral 
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Function

2015-11-16 Por tôpico Bruno Felipe
Obrigado Flávio e Euler.

Euler, é isso mesmo, quero usar o For ali para ele pegar cada tabela e já
converter, mais não estou conseguindo encaixar direito ele, deve ser porque
ainda sou novo e estou apanhando bastante kk
Mais onde ele ficaria melhor para ler e converter tabela a tabela?

Sua função ficou ótima, eu testei e era isso mesmo que estava tentando fazer

obrigado



Enviado com MailTrack


Em 16 de novembro de 2015 00:13, Euler Taveira 
escreveu:

> On 15-11-2015 07:21, Flavio Henrique Araque Gurgel wrote:
>
>> Sua função está colocando aspas e parênteses no nome da tabela.
>> Corrija a concatenação no execute.
>>
>> O problema não é só esse. Ele está usando o tipo record ao invés do
> elemento 'relname' do record.
>
> Como o Flavio disse, o ideal é não usar aspas e sim a função quote_ident
> que decide se precisa usar aspas duplas ou não.
>
> CREATE OR REPLACE FUNCTION teste() returns setof record as $$
> DECLARE
> tabela CURSOR IS SELECT relname FROM pg_stat_user_tables ORDER BY relname;
> linha record;
> BEGIN
> OPEN tabela;
> FETCH tabela INTO linha;
> EXECUTE 'COPY (SELECT row_to_json(t) FROM (SELECT * FROM ' ||
> quote_ident(linha.relname) || ') t) TO ''/tmp/teste''';
> CLOSE tabela;
> END;
> $$
> LANGUAGE plpgsql
>
> É claro que se você declarou um cursor é porque vai usar um 'FOR foo IN
> bar LOOP' ali.
>
>
> --
>Euler Taveira   Timbira - http://www.timbira.com.br/
>PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral




-- 
*Bruno da Cunha Felipe*
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral