Обсуждение: vacuumdb has a fatal after database rename
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
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
CgpJIGFtIHNvcnJ5IC4gCndlIHdhbnQgdG8gaGlkZSB0aGUgZGF0YWJhc2UgcG9zdGdyZXMgZm9y ICB0aGUgc2VjdXJpdHkgY29uY2VybiAuIApIb3dldmVyIEkgZm91bmQgdGhpcyBtZXNzYWdlIGlu IGxvZyAuIApJIHRoaW5rIHRoZXJlIGFyZSBzb21lIHByb2JsZW0gaW4gdmFjdXVtZGIgLgpCdXQg IG5vdyBJIHNlZSAgdGhpcyBpcyBteSBtaXN0YWtlIC4gIAoKCkJlc3QgcmVnYXJkcywKVFQKCgpB dCAyMDE2LTA5LTI5IDAxOjI5OjM3LCAiaHViZXJ0IGRlcGVzeiBsdWJhY3pld3NraSIgPGRlcGVz ekBkZXBlc3ouY29tPiB3cm90ZToKPk9uIFdlZCwgU2VwIDI4LCAyMDE2IGF0IDA5OjU0OjQxUE0g KzA4MDAsIGh1YW5nIHdyb3RlOgo+PiBJZiBJIHJlbmFtZSB0aGUgZGF0YWJhc2UgcG9zdGdyZXMg IGJlZm9yZSB2YWN1dW1kYiAsIHRoZSB2YWN1dW1kYiBzYXkKPj4gRkFUQUw6ICBkYXRhYmFzZSAi cG9zdGdyZXMiIGRvZXMgbm90IGV4aXN0Lgo+Cj5TbyBkb24ndCByZW5hbWUgaXQuIEl0J3MgYmVp bmcgdXNlZCBiZWNhdXNlIHlvdSBhcmUgcnVubmluZyB2YWN1dW1kYgo+dXNpbmcgcG9zdGdyZXMg c2hlbGwgYWNjb3VudC4KPgo+WW91IGNvdWxkIHRyeSBzb21ldGhpbmcgbGlrZToKPgo+UEdEQVRB QkFTRT10ZW1wbGF0ZTEgdmFjdXVtZGIgLWF6Cj4KPmJ1dCBnZW5lcmFsbHkgc3BlYWtpbmcgaXQg aXMgbm90IGFkdmlzZWQgdG8gcmVuYW1lIHBvc3RncmVzIGRiLgo+Cj5CZXN0IHJlZ2FyZHMsCj4K PmRlcGVzego+Cg==