Thread: Schema renaming cascade

Schema renaming cascade

From
Lorusso Domenico
Date:
Hello guys,
I need to rename a schema, including each reference to it (also for functions)

I mean:
I've 2 schemas called "schema1" and "schema2".
In schema1 there are tables, composite types, and functions
Functions call other functions in the same schema

In schema2 
Also in schema2 there are tables, composite types, and functions
Plus many function and tables refer to object of schema1


I need to rename schema1 to schema 3 substituting any reference to schema1 with schema3
Is there a way to to that?

I found this answer that clone a schema (that solve partially the problem) but is it still working for v15?

At the end, I need to replace schema1 with schema3 for each function (because table and type are automatically update)

Any suggestions?

Re: Schema renaming cascade

From
Alvaro Herrera
Date:
On 2023-Aug-17, Lorusso Domenico wrote:

> Hello guys,
> I need to rename a schema, including each reference to it (also for
> functions)

Maybe you should consider removing schema name references in function
source code, and instead refer to the tables (and other functions, etc)
by their unqualified names, and at the same time attach a "SET
search_path" clause to the function.  That way, when you need to rename
the schema you don't need to change the function source code, just
update its "SET search_path" clause.

-- 
Álvaro Herrera               48°01'N 7°57'E  —  https://www.EnterpriseDB.com/