Re: Alter Table vs. Rename/Create/Drop table with plpgsql functions. - Mailing list pgsql-admin
From | Robert Perry |
---|---|
Subject | Re: Alter Table vs. Rename/Create/Drop table with plpgsql functions. |
Date | |
Msg-id | 3F00F512-7CC4-4C3F-A16B-FBB3E80EAD01@lodestonetechnologies.com Whole thread Raw |
In response to | Re: Alter Table vs. Rename/Create/Drop table with plpgsql functions. ("Mark R. Dingee" <mark.dingee@cox.net>) |
List | pgsql-admin |
Thanks for the suggestion. Dump/Reload the DB I am really not going to be able to do. Also I am going to be doing this to several copies of similar databases so vi is out, but that is nothing that a nice script can't overcome. I think that the down time would just be to much. Also because I am going to be running it on multiple datbases I was hoping to limit it to a single script ran inside of psql, as I already have a system in place to run given sql scripts on each databases. Other wise it is a very good suggestion that would same my much trouble. I may still come back to it. Thanks Robert Perry On Aug 1, 2005, at 12:48 PM, Mark R. Dingee wrote: > Robert, > > If you have the luxury of taking the production db offline for a > few minutes > or if you're just making changes in a test environment, this > process works: > > given: > create table test1 ( > id integer, > txt1 text, > txt2 text > ); > > execute at command line: > pg_dump [dbname]> backups/renametable.sql > > use your favorite text editor to change the above create table > statement in > backups/renametable.sql to: > > create table test1 ( > id integer, > txt0 text, > txt1 text, > txt2 text > ); > > execute at command line: > dropdb [dbname]; createdb [dbname]; cat backups/renametable.sql | psql > > it's not the most graceful of methods, but it works. > > Mark > > > On Monday 01 August 2005 12:06 pm, Robert Perry wrote: > >> Perhaps I am just just a bit anal on this but some columns I >> really like to have as the last columns of a table. (usually >> last_modby, last_modtime, type fields) Thus when I need to add a >> column to a table I am not happy just adding the column. Instead I >> go a little insane and rename the table, create the new table, copy >> the data into the new table (with any require manipulations), change >> all foreign key constraints to point to the new table, rebuild >> plpgsql functions the user that table and finally drop the old table. >> >> The problem is the second to last. (rebuild plpgsql function) >> These function are getting a little harder to find. This DB has >> hundreds if not thousands of functions and some of my table names are >> a bit common. (e.g. item) My first of all I would really like a way >> to tell postgresql to un cache all functions and let the cache >> rebuild as need be. I imagine restarting postgresql would do this, >> but in my particular situation that has its' own problems associated >> with it. >> >> Secondly does anyone know a way to insert a column instead of >> appending a column to a table. That way I could just avoid the >> entire mess. >> >> Thanks >> Robert Perry >> >> ---------------------------(end of >> broadcast)--------------------------- >> TIP 9: In versions below 8.0, the planner will ignore your desire to >> choose an index scan if your joining column's datatypes do not >> match >> > > ---------------------------(end of > broadcast)--------------------------- > TIP 2: Don't 'kill -9' the postmaster >
pgsql-admin by date: