Обсуждение: vacuumdb has a fatal after database rename

Поиск
Список
Период
Сортировка

vacuumdb has a fatal after database rename

От
huang
Дата:
Hi friends,

If I rename the database postgres  before vacuumdb , the vacuumdb say
FATAL:  database "postgres" does not exist.



[postgres@vdedu1 ~]$ vacuumdb -a
vacuumdb: vacuuming database "mydb"
vacuumdb: vacuuming database "postgres"
vacuumdb: vacuuming database "template1"
[postgres@vdedu1 ~]$ psql -c"alter database postgres rename to postgresql;"
ERROR:  current database cannot be renamed
STATEMENT:  alter database postgres rename to postgresql;
ERROR:  current database cannot be renamed
[postgres@vdedu1 ~]$ psql
psql (9.5.4)
Type "help" for help.

postgres=# alter database postgres rename to postgresql;
ERROR:  current database cannot be renamed
STATEMENT:  alter database postgres rename to postgresql;
ERROR:  current database cannot be renamed
postgres=# \q
[postgres@vdedu1 ~]$ psql -d template1 -c"alter database postgres rename
to postgresql;"
ALTER DATABASE
[postgres@vdedu1 ~]$ psql -l
FATAL:  database "postgres" does not exist
psql: FATAL:  database "postgres" does not exist
[postgres@vdedu1 ~]$ psql -l -d template1
                                   List of databases
     Name    |  Owner   | Encoding |   Collate   |    Ctype    | Access
privile
ges
------------+----------+----------+-------------+-------------+-----------------
------
  mydb       | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
  postgresql | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
  template0  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
=c/postgres
      +
             |          |          |             |             |
postgres=CTc/pos
tgres
  template1  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
=c/postgres
      +
             |          |          |             |             |
postgres=CTc/pos
tgres
(4 rows)

[postgres@vdedu1 ~]$ vacuumdb -a
FATAL:  database "postgres" does not exist
vacuumdb: vacuuming database "mydb"
vacuumdb: vacuuming database "postgresql"
vacuumdb: vacuuming database "template1"
[postgres@vdedu1 ~]$

2016-09-28
TT

Re: vacuumdb has a fatal after database rename

От
hubert depesz lubaczewski
Дата:
On Wed, Sep 28, 2016 at 09:54:41PM +0800, huang wrote:
> If I rename the database postgres  before vacuumdb , the vacuumdb say
> FATAL:  database "postgres" does not exist.

So don't rename it. It's being used because you are running vacuumdb
using postgres shell account.

You could try something like:

PGDATABASE=template1 vacuumdb -az

but generally speaking it is not advised to rename postgres db.

Best regards,

depesz

Re: vacuumdb has a fatal after database rename

От
huang
Дата:
CgpJIGFtIHNvcnJ5IC4gCndlIHdhbnQgdG8gaGlkZSB0aGUgZGF0YWJhc2UgcG9zdGdyZXMgZm9y
ICB0aGUgc2VjdXJpdHkgY29uY2VybiAuIApIb3dldmVyIEkgZm91bmQgdGhpcyBtZXNzYWdlIGlu
IGxvZyAuIApJIHRoaW5rIHRoZXJlIGFyZSBzb21lIHByb2JsZW0gaW4gdmFjdXVtZGIgLgpCdXQg
IG5vdyBJIHNlZSAgdGhpcyBpcyBteSBtaXN0YWtlIC4gIAoKCkJlc3QgcmVnYXJkcywKVFQKCgpB
dCAyMDE2LTA5LTI5IDAxOjI5OjM3LCAiaHViZXJ0IGRlcGVzeiBsdWJhY3pld3NraSIgPGRlcGVz
ekBkZXBlc3ouY29tPiB3cm90ZToKPk9uIFdlZCwgU2VwIDI4LCAyMDE2IGF0IDA5OjU0OjQxUE0g
KzA4MDAsIGh1YW5nIHdyb3RlOgo+PiBJZiBJIHJlbmFtZSB0aGUgZGF0YWJhc2UgcG9zdGdyZXMg
IGJlZm9yZSB2YWN1dW1kYiAsIHRoZSB2YWN1dW1kYiBzYXkKPj4gRkFUQUw6ICBkYXRhYmFzZSAi
cG9zdGdyZXMiIGRvZXMgbm90IGV4aXN0Lgo+Cj5TbyBkb24ndCByZW5hbWUgaXQuIEl0J3MgYmVp
bmcgdXNlZCBiZWNhdXNlIHlvdSBhcmUgcnVubmluZyB2YWN1dW1kYgo+dXNpbmcgcG9zdGdyZXMg
c2hlbGwgYWNjb3VudC4KPgo+WW91IGNvdWxkIHRyeSBzb21ldGhpbmcgbGlrZToKPgo+UEdEQVRB
QkFTRT10ZW1wbGF0ZTEgdmFjdXVtZGIgLWF6Cj4KPmJ1dCBnZW5lcmFsbHkgc3BlYWtpbmcgaXQg
aXMgbm90IGFkdmlzZWQgdG8gcmVuYW1lIHBvc3RncmVzIGRiLgo+Cj5CZXN0IHJlZ2FyZHMsCj4K
PmRlcGVzego+Cg==