Gerando o DDL de todas as views de um esquema no PostgreSQL

Atendendo a pedidos, segue um formato fácil para gerar um DDL de todas as views de um esquema específico no PostgreSQL. Na verdade está tudo pronto em pg_views, mas desta forma fica tudo num único arquivo bem formatado:

a
t
o views_schema_xyz.sql
-- Gera DDL
SELECT 
        '-- DDL da view ' || schemaname || '.' || viewname || chr(10) ||
            'CREATE VIEW ' || schemaname || '.' || viewname || ' AS ' || chr(10) || 
                definition || chr(10) || 
                'ALTER VIEW ' || schemaname || '.' || viewname || ' OWNER TO ' || viewowner || ';' ||
             chr(10) 
    FROM pg_views
    WHERE schemaname = 'nome_do_esquema'
    ORDER BY schemaname, viewname;

-- Gera GRANTs
SELECT '--GRANTs';
SELECT 
        'GRANT ' || string_agg(privilege_type,', ') || ' ON ' ||
         table_schema || '.' || table_name || ' TO ' || grantee || ';'
FROM 
    information_schema.role_table_grants 
    JOIN pg_views ON 
        table_schema = schemaname AND
        table_name   = viewname
where table_schema = 'nome_do_esquema'
GROUP BY table_name, grantee;
o
a
t
q 
cat views_schema_xyz.sql

 

Um comentário sobre “Gerando o DDL de todas as views de um esquema no PostgreSQL

  1. Pingback: Gerando o DDL de todas as views de um esquema no PostgreSQL | DBA4All

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s