On 09/04/2013 07:02 AM, Evan Martin wrote:
Also, even without --clean I get 3 errors: pg_restore: [archiver (db)] Error while PROCESSING TOC: pg_restore: [archiver (db)] Error from TOC entry 6755; 2618 4417788 RULE geometry_columns_delete em pg_restore: [archiver (db)] could not execute query: ERROR: rule "geometry_columns_delete" for relation "geometry_columns" already exists Command was: CREATE RULE geometry_columns_delete AS ON DELETE TO geometry_columns DO INSTEAD NOTHING; (and same for "geometry_columns_insert" and "geometry_columns_update") This is probably because I have PostGIS installed as an extension (in both the source and target databases), which creates those rules. Could pg_restore use CREATE OR REPLACE whenever possible to avoid this?
I could see where CREATE OR REPLACE would lead to hidden corruption. It is in entirely possible for a RULE or FUNCTION to have the same name in different databases, but have different code under the name. Blindly REPLACEing would get you past the error messages, however it is possible that it leads to all sorts of headaches later.
-- Adrian Klaver adrian.klaver@xxxxxxxxx -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general