Thread: backup and document views and user functions

backup and document views and user functions

From
David Harel
Date:
<font size="+1"><font face="Arial">Hi,<br /><br /> I am looking for an easy way to backup views and functions. I want
tostore them in our version control system.<br /><br /> Using pgAdmin I can access them one at a time. I am looking for
abetter reporting mechanism. psql shell command for such report will be just fine.<br /><br /> Sorry for the lame
question.I didn't find any clues on the web .(typically, I fail to phrase the right keywords)<br /></font></font> <pre
class="moz-signature"cols="72">-- 
 
Thanks.

David Harel,

==================================

Home office +972 77 7657645
Cellular:   +972 54 4534502
Snail Mail: Amuka           D.N Merom Hagalil           13802           Israel
Email:      <a class="moz-txt-link-abbreviated" href="mailto:hareldvd@ergolight-sw.com">hareldvd@ergolight-sw.com</a>

</pre>

Re: backup and document views and user functions

From
Pavel Stehule
Date:
Hello

2010/8/30 David Harel <hareldvd@gmail.com>:
> Hi,
>
> I am looking for an easy way to backup views and functions. I want to store
> them in our version control system.
>

move your functions and view to separate schema - and do backup with

pg_dump -n schema

regards

Pavel Stehule

> Using pgAdmin I can access them one at a time. I am looking for a better
> reporting mechanism. psql shell command for such report will be just fine.
>
> Sorry for the lame question. I didn't find any clues on the web .(typically,
> I fail to phrase the right keywords)
>
> --
> Thanks.
>
> David Harel,
>
> ==================================
>
> Home office +972 77 7657645
> Cellular:   +972 54 4534502
> Snail Mail: Amuka
>             D.N Merom Hagalil
>             13802
>             Israel
> Email:      hareldvd@ergolight-sw.com
>
>


Re: backup and document views and user functions

From
Hélder M. Vieira
Date:
Hi.

>I am looking for an easy way to backup views and functions. I want to store 
>them in our version control system.

Well... As far as I can see, for functions you should go to the 'pg_catalog' 
schema, table 'pg_proc'. In column 'prosrc' you will find the original text, 
but other attributes are dispersed in a few columns, including arrays for 
argument names and types. For views, you should look in the view 'pg_views'.
This is the result of a quick reading through the catalog, I hope I can only 
hope I'm not missing something, please check carefully if this is waht 
you're looking for.

Regards,

Helder M. Vieira



Re: backup and document views and user functions

From
Reinoud van Leeuwen
Date:
On Mon, Aug 30, 2010 at 09:21:06PM +0300, David Harel wrote:
> Hi,
> 
> I am looking for an easy way to backup views and functions. I want to 
> store them in our version control system.
> 
> Using pgAdmin I can access them one at a time. I am looking for a better 
> reporting mechanism. psql shell command for such report will be just fine.

pg_dump?


-- 
__________________________________________________
"Nothing is as subjective as reality"
Reinoud van Leeuwen    reinoud.v@n.leeuwen.net
http://reinoud.van.leeuwen.net kvk 27320762
__________________________________________________


Re: backup and document views and user functions

From
Peter Steinheuser
Date:
You'll probably have to write something (a function) that pulls the data out of pg_catalog.<br />You can get a leg up
onthat by connecting to psql using -E, which echoes hidden queries.<br />If you do a \df+   on a function, you'll see
thequery PG uses.<br /><br />ex. <br />production=# \df+ myschema.*<br /><br />********* QUERY **********<br />SELECT
n.nspnameas "Schema",<br />  p.proname as "Name",<br />  pg_catalog.pg_get_function_result(p.oid) as "Result data
type",<br/>   pg_catalog.pg_get_function_arguments(p.oid) as "Argument data types",<br /> CASE<br />  WHEN p.proisagg
THEN'agg'<br />  WHEN p.proiswindow THEN 'window'<br />  WHEN p.prorettype = 'pg_catalog.trigger'::pg_catalog.regtype
THEN'trigger'<br />   ELSE 'normal'<br />END as "Type",<br /> CASE<br />  WHEN p.provolatile = 'i' THEN 'immutable'<br
/> WHEN p.provolatile = 's' THEN 'stable'<br />  WHEN p.provolatile = 'v' THEN 'volatile'<br /> END as "Volatility",<br
/> pg_catalog.pg_get_userbyid(p.proowner) as "Owner",<br />  l.lanname as "Language",<br />  p.prosrc as "Source
code",<br/>  pg_catalog.obj_description(p.oid, 'pg_proc') as "Description"<br /> FROM pg_catalog.pg_proc p<br />    
LEFTJOIN pg_catalog.pg_namespace n ON n.oid = p.pronamespace<br />     LEFT JOIN pg_catalog.pg_language l ON l.oid =
p.prolang<br/>WHERE n.nspname ~ '^(myschema)$'<br />ORDER BY 1, 2, 4;<br /> **************************<br /><br /><br
/><br/><div class="gmail_quote">On Mon, Aug 30, 2010 at 2:21 PM, David Harel <span dir="ltr"><<a
href="mailto:hareldvd@gmail.com">hareldvd@gmail.com</a>></span>wrote:<br /><blockquote class="gmail_quote"
style="margin:0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div bgcolor="#ffffff"
style="direction:ltr;" text="#000000"><font size="+1"><font face="Arial">Hi,<br /><br /> I am looking for an easy way
tobackup views and functions. I want to store them in our version control system.<br /><br /> Using pgAdmin I can
accessthem one at a time. I am looking for a better reporting mechanism. psql shell command for such report will be
justfine.<br /><br /> Sorry for the lame question. I didn't find any clues on the web .(typically, I fail to phrase the
rightkeywords)<br /></font></font> <pre cols="72">--  
Thanks.

David Harel,

==================================

Home office +972 77 7657645
Cellular:   +972 54 4534502
Snail Mail: Amuka           D.N Merom Hagalil           13802           Israel
Email:      <a href="mailto:hareldvd@ergolight-sw.com" target="_blank">hareldvd@ergolight-sw.com</a>

</pre></div></blockquote></div><br /><br clear="all" /><br />-- <br />Peter Steinheuser<br /><a
href="mailto:psteinheuser@myyearbook.com">psteinheuser@myyearbook.com</a><br/> 

Re: backup and document views and user functions

From
Pavel Stehule
Date:
hello

2010/8/30 Peter Steinheuser <psteinheuser@myyearbook.com>:
> You'll probably have to write something (a function) that pulls the data out
> of pg_catalog.
> You can get a leg up on that by connecting to psql using -E, which echoes
> hidden queries.
> If you do a \df+   on a function, you'll see the query PG uses.
>

there is much more easy way to get a function source code

SELECT pg_catalog.pg_get_functiondef(oid)

Regards

Pavel Stehule

> ex.
> production=# \df+ myschema.*
>
> ********* QUERY **********
> SELECT n.nspname as "Schema",
>   p.proname as "Name",
>   pg_catalog.pg_get_function_result(p.oid) as "Result data type",
>   pg_catalog.pg_get_function_arguments(p.oid) as "Argument data types",
>  CASE
>   WHEN p.proisagg THEN 'agg'
>   WHEN p.proiswindow THEN 'window'
>   WHEN p.prorettype = 'pg_catalog.trigger'::pg_catalog.regtype THEN
> 'trigger'
>   ELSE 'normal'
> END as "Type",
>  CASE
>   WHEN p.provolatile = 'i' THEN 'immutable'
>   WHEN p.provolatile = 's' THEN 'stable'
>   WHEN p.provolatile = 'v' THEN 'volatile'
> END as "Volatility",
>   pg_catalog.pg_get_userbyid(p.proowner) as "Owner",
>   l.lanname as "Language",
>   p.prosrc as "Source code",
>   pg_catalog.obj_description(p.oid, 'pg_proc') as "Description"
> FROM pg_catalog.pg_proc p
>      LEFT JOIN pg_catalog.pg_namespace n ON n.oid = p.pronamespace
>      LEFT JOIN pg_catalog.pg_language l ON l.oid = p.prolang
> WHERE n.nspname ~ '^(myschema)$'
> ORDER BY 1, 2, 4;
> **************************
>
>
>
> On Mon, Aug 30, 2010 at 2:21 PM, David Harel <hareldvd@gmail.com> wrote:
>>
>> Hi,
>>
>> I am looking for an easy way to backup views and functions. I want to
>> store them in our version control system.
>>
>> Using pgAdmin I can access them one at a time. I am looking for a better
>> reporting mechanism. psql shell command for such report will be just fine.
>>
>> Sorry for the lame question. I didn't find any clues on the web
>> .(typically, I fail to phrase the right keywords)
>>
>> --
>> Thanks.
>>
>> David Harel,
>>
>> ==================================
>>
>> Home office +972 77 7657645
>> Cellular:   +972 54 4534502
>> Snail Mail: Amuka
>>             D.N Merom Hagalil
>>             13802
>>             Israel
>> Email:      hareldvd@ergolight-sw.com
>>
>
>
>
> --
> Peter Steinheuser
> psteinheuser@myyearbook.com
>