命令行客户端的语法psql
是
psql [option...] [dbname [username]]
我正在将命令传递ALTER DATABASE x RENAME to y
给该命令:
echo `ALTER DATABASE x RENAME to y` | psql
目前我收到错误
psql: FATAL: database "myuser" does not exist
该命令似乎psql
尝试打开与当前用户名同名的数据库。
如何psql
在不选择任何数据库的情况下启动命令?
编辑:
当然,解决方法就是为用户创建一个空数据库。
使用数据库x
作为参数不起作用,因为这会阻止重命名。
答案1
尝试设置数据库psql -d postgres
::
echo `ALTER DATABASE x RENAME to y` | psql -d postgres
“template1”或“postgres”应该可用。
答案2
在 Ubuntu 中:
sudo -u postgres psql
postgres=# ALTER DATABASE "old" RENAME TO "new";
ALTER DATABASE
postgres=# \q