Thread: Renaming a schema
Recently, I decided to rename one of my schemas from "adium" to "im". Then, all inserts started failing. I recreated a couple functions, changed the search path, and all inserts are still failing due to referential integrity checks going against "adium" still. Is there any way I can fix this, short of manually dropping every constraint and recreating them? Jeff
Jeffrey Melloy <jmelloy@visualdistortion.org> writes: > Recently, I decided to rename one of my schemas from "adium" to "im". > Then, all inserts started failing. > I recreated a couple functions, changed the search path, and all inserts > are still failing due to referential integrity checks going against > "adium" still. Is there any way I can fix this, short of manually > dropping every constraint and recreating them? I couldn't replicate this ... AFAICS the RI triggers reference tables by OID, not name. What PG version are you using? Can you give a self-contained test case? regards, tom lane
On Jun 24, 2004, at 4:46 PM, Tom Lane wrote: > Jeffrey Melloy <jmelloy@visualdistortion.org> writes: >> Recently, I decided to rename one of my schemas from "adium" to "im". >> Then, all inserts started failing. >> I recreated a couple functions, changed the search path, and all >> inserts >> are still failing due to referential integrity checks going against >> "adium" still. Is there any way I can fix this, short of manually >> dropping every constraint and recreating them? > > I couldn't replicate this ... AFAICS the RI triggers reference tables > by > OID, not name. What PG version are you using? Can you give a > self-contained test case? > > regards, tom lane > I'm using PostgreSQL 7.4.2, and have a script that reproduces my problem: Upon further inspection, the problem isn't the RI triggers; it's the default sequence not changing. Jeff
Jeffrey Melloy <jmelloy@visualdistortion.org> writes: > Upon further inspection, the problem isn't the RI triggers; it's the > default sequence not changing. Ah. Yes, that's a known issue. We need to fix things so that the sequence is (internally) referenced by OID rather than by name. There's been some talk about how to do this but it's a bit harder than it might sound ... regards, tom lane