переименовать базу данных в psql

Может ли кто-нибудь помочь мне переименовать базу данных в postgresql из оболочки Linux

ALTER DATABASE name RENAME TO newname

Приведенный выше оператор не выполняется

Ответов (6)

Вам могут потребоваться привилегии для renmae db. Это может сделать только владелец db или суперпользователь, владельцу также нужен пользователь createdb.

Также нельзя переименовать базу данных, к которой вы подключены, вам нужно подключиться к другой.

Это может быть глупо очевидный вопрос. Вы используете psql как пользователь postgres?

например

$ sudo -u postgres psql
# alter database FOO rename to BAR;
# \q

Ниже приведены шаги по переименованию базы данных в postgresql.

1) Щелкните правой кнопкой мыши базу данных и выберите «Обновить».
2) Щелкните правой кнопкой мыши еще раз и выберите параметр свойств.
3) На вкладке свойств вы можете изменить имя на желаемое.

Вы не можете переименовать базу данных, к которой вы подключены. Перед изменением имени базы данных убедитесь, что вы отключены. В PGAdmin вы можете просто щелкнуть правой кнопкой мыши по самой базе данных, перейти в свойства и переименовать ее оттуда. Как указывали другие, вы также можете попробовать команду: ALTER DATABASE (DB NAME) RENAME TO (NEW NAME);

Отключить базу данных ( Ctrl + F2 в DataGrip)

А потом:

$ psql -U postgres
postgres=# ALTER DATABASE db_a RENAME TO db_b;

GL

Какая версия postgresql? Из документации 8.1 :

ИЗМЕНИТЬ имя БАЗЫ ДАННЫХ ПЕРЕИМЕНОВАТЬ НА новое имя;

Только владелец базы данных или суперпользователь может переименовать базу данных; Владельцы, не являющиеся суперпользователями, также должны иметь привилегию CREATEDB. Текущая база данных не может быть переименована. (Подключитесь к другой базе данных, если вам нужно это сделать.)