Обсуждение: Question about initdb -t
The man page for initdb says that the -t option will overwrite the template1
database with the up-to-date structure and suggests that this is the way to
upgrade to a newer release:
--template
-t Replace the template1 database in an existing database system, and don't touch
anything else. This is useful when you need to upgrade your tem plate1 database using initdb
froma newer release of PostgreSQL, or when your template1 database has become corrupted by
somesystem problem. Normally the contents of template1 remain constant through out the life
of the database system. You can't destroy anything by running initdb with the --tem plate
option.
How does this relate to pg_upgrade? Is it necessary to do a pg_dump? If
not, is there a danger of new oids in template1 overwriting old oids in
user data? (I am not clear whether oids are unique to a database or
to the whole PostgreSQL installation.)
--
Oliver Elphick Oliver.Elphick@lfix.co.uk
Isle of Wight http://www.lfix.co.uk/oliver PGP key from public servers; key
ID32B8FAA1 ======================================== "If the Son therefore shall make you free, ye
shallbe free indeed." John 8:36
Oliver Elphick writes: > The man page for initdb says that the -t option will overwrite the template1 > database with the up-to-date structure and suggests that this is the way to > upgrade to a newer release I believe it's wrong. The only thing -t does is fill up your template1 database with good data, say if you acidentally deleted all records from a system table. It is not very useful generally, I think. > How does this relate to pg_upgrade? It doesn't. I have never used pg_upgrade but from looking at it I believe what it does is create a new database schema (using pg_dumpall information) and then instead of using COPY to get your data back in it merely moves over the old on disk files for each table. The only thing this buys you is time, it doesn't work around the various pg_dump deficiencies or having to shut down the database, etc. > Is it necessary to do a pg_dump? Not unless you have something interesting in template1 you'd like to preserve. > If not, is there a danger of new oids in template1 overwriting old > oids in user data? No. > (I am not clear whether oids are unique to a database or to the whole > PostgreSQL installation.) installation -- Peter Eisentraut Sernanders väg 10:115 peter_e@gmx.net 75262 Uppsala http://yi.org/peter-e/ Sweden