Re: pg_upgrade if 'postgres' database is dropped
| От | Bruce Momjian |
|---|---|
| Тема | Re: pg_upgrade if 'postgres' database is dropped |
| Дата | |
| Msg-id | 201110280335.p9S3Zap15265@momjian.us обсуждение исходный текст |
| Ответ на | Re: pg_upgrade if 'postgres' database is dropped (Tom Lane <tgl@sss.pgh.pa.us>) |
| Ответы |
Re: pg_upgrade if 'postgres' database is dropped
|
| Список | pgsql-hackers |
Tom Lane wrote: > Bruce Momjian <bruce@momjian.us> writes: > > Stephen Frost wrote: > >> Yes, they would have removed it because they didn't want it. As I > >> recall, part of the agreement to create an extra database by default was > >> that it could be removed if users didn't want it. Turning around and > >> then saying "but things won't work if it's not there" isn't exactly > >> supporting users who decide to remove it. > > > Well, you would have to remove it _after_ you did the pg_upgrade. > > As far as the *target* cluster is concerned, I have no sympathy for > someone who messes with its contents before running pg_upgrade. > That's an RTFM matter: you're supposed to upgrade into a virgin > just-initdb'd cluster. > > However, it would be nice if pg_upgrade supported transferring from a > *source* cluster that didn't have the postgres DB. I have this C comment in pg_upgrade about this: * If someone removes the 'postgres' database from the old cluster and* the new cluster has a 'postgres' database, the numberof databases* will not match. We actually could upgrade such a setup, but it would* violate the 1-to-1 mapping ofdatabase counts, so we throw an error* instead. We would detect this as a database count mismatch during* upgrade, butwe want to detect it during the check phase and report* the database name. Is this worth fixing? Another problem is that pg_dumpall doesn't remove the postgres database in the new cluster if it was not in the old one, so they are going to end up with a postgres database in the new cluster anyway. I could argue that pg_upgrade is better because reports it cannot recreate the new cluster exactly, while pg_dumpall just keeps a postgres database that was not in the old cluster. > What about creating a new, single-purpose database in the source > cluster and then removing it again after we're done? That is not a problem --- I can easily use template1. -- Bruce Momjian <bruce@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + It's impossible for everything to be true. +
В списке pgsql-hackers по дате отправления: