> I have a table with a bunch of records already inserted. When
> I want to add or remove fields from the, what I've done is
> produce an sql file, add the fields to the create table
> directive, and add the fields manually to each record to be
> inserted. Then I do an
>
> \i db_name
>
> which destroys all the tables and records and then recreates
> them. I'm wondering if there's a better way. Namely, I alter
> the table using psql, which I know can be done. What I'm not
> sure about is whether altering the table will also alter the
> records, or will the records inserted previous to the alter
> table be out of sync with the table.
You can use ALTER TABLE.
ALTER TABLE <table> ADD [column] column type
Can also rename columns, add constraints, change to NOT NULL, etc.
However you cannot currently remove a column...
ALTER TABLE in SQL COMMANDS at:
http://www.postgresql.com/docs/pdf/7.3/reference-7.3.2-A4.pdf