Re: Scripting issues - Mailing list pgsql-general

From Bruno Wolff III
Subject Re: Scripting issues
Date
Msg-id 20050621122503.GD28910@wolff.to
Whole thread Raw
In response to Scripting issues  (postgresql@bryden.co.za)
List pgsql-general
On Tue, Jun 21, 2005 at 09:16:08 +0200,
  postgresql@bryden.co.za wrote:

> I come from a MSSQL background and am trying to figure out how to write
> deployment scripts for PostgreSQL. Typically, if I want to drop a
> function, I would write a script that first checks for it's existence and
> then performs the drop.
>
> In MSSQL it would be as easy as (this can be done in native TSQL):
> IF EXISTS (...some query to system tables...)
>   DROP function XXX

> All the development that I do needs to be deployed in a script fashion and
> generally I need to check for the existence of an object before replacing
> or dropping.

If the script isn't running in a single transaction, consider just
dropping the table and ignoring any error messages.

If you do need to worry about a failed drop aborting a transaction, then
you can use savepoints in 8.0. However, it doesn't look like you can
have conditional rollbacks in psql until 8.1. So to use this feature
in a script you will need to write a function that traps the exception
and rolls back to the the savepoint for the case where the drop fails.

For pre 8.0 versions, consider having a function that checks the system
catalog before issuing the drop.

pgsql-general by date:

Previous
From: Richard Huxton
Date:
Subject: Re: problems with types after update to 8.0
Next
From: "FERREIRA, William (COFRAMI)"
Date:
Subject: compilation postgresql/solaris error