The syntax of the psql command line client is

psql [option...] [dbname [username]]

I am passing the command ALTER DATABASE x RENAME to y to this command:

echo `ALTER DATABASE x RENAME to y` | psql

Currently I am getting the error

psql: FATAL:  database "myuser" does not exist

It looks like the psql command tries to open the database with the same name as the current user name.

How can I start the psql command without selecting any database?


A workaround is of course just to create an empty database for the user.

Using the database x as a parameter is not working, as this blocks the rename.

2 Answers 2


Try setting the database: psql -d postgres:

echo `ALTER DATABASE x RENAME to y` | psql -d postgres

"template1" or "postgres" should be available.

See https://stackoverflow.com/questions/4483139/php-how-do-i-connect-to-postgresql-without-specifying-database-name


In Ubuntu:

sudo -u postgres psql
postgres=# ALTER DATABASE "old" RENAME TO "new";
postgres=# \q

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .