On Wed, 22 Oct 2003, Gail Zacharias wrote:

> I need to be able to move the database files, as normal user-visible 
> files, between machines. I.e. given a database on machine A, I want to 
> be able to copy either a single file (ideally) or a single directory 
> (less ideal but still ok) to, say, a zip drive, bring it over to another 
> machine (with pgsql also installed), start up my application and have it 
> access the copied database through pgsql.

While you think this is the preferred method, for postgresql is most 
certainly is not.  what you need to do is read up a bit on pg_dump and how 
to use it to accomplish your goals.  For instance, suppose I have two 
machines, A and B, and I want to copy the table accounts from the test 
database on A to B.  Assuming that the test database exists, but the table 
accounts doesn't, I can do this (Note these are all command line 
programs, not psql):

pg_dump -h A test -t accounts |psql -h B test 

Or, if I want to move a whole single database over:

createdb -h B dbname
pg_dump -h A dbname |psql -h B dbname

(This assumes the database dbname didn't exist.)

or, the biggie, assuming B is a freshly initdb'd database, and I want to 
move ALL the databases from A to B:

pg_dumpall -h A|psql -h B

Moving individual database files around is a certifiably Bad idea.


---------------------------(end of broadcast)---------------------------
TIP 9: the planner will ignore your desire to choose an index scan if your
      joining column's datatypes do not match

Reply via email to