Psql – Роль root не существует

Вопрос:Я создаю команду bash в PHP скрипт. Встроенная команда такова: su postgres -c "for tbl in `psql -qAt -c "select tablename from pg_tables where schemaname = 'public';" demodoo` ;do psql -c "alter table $tbl owner to postgres" demodoo ;done " Когда я пытаюсь запустить эту команду в оболочке, я получаю эту ошибку: psql: FATAL: role

Вопрос:

Я создаю команду bash в PHP скрипт. Встроенная команда такова:

su postgres -c «for tbl in `psql -qAt -c «select tablename from pg_tables where schemaname = ‘public’;» demodoo` ;do psql -c «alter table $tbl owner to postgres» demodoo ;done »

Когда я пытаюсь запустить эту команду в оболочке, я получаю эту ошибку:

psql: FATAL: role «root» does not exist

Почему это происходит, тогда как я выполняю команду под пользователем postgres?

Спасибо
Cheers,

ИЗМЕНИТЬ
Я меняю команду на

sudo -u postgres for tbl in `psql -qAt -c «select tablename from pg_tables where schemaname = ‘public’;» demodoo` ;do psql -c «alter table $tbl owner to postgres» demodoo ;done

но теперь я получаю еще одну ошибку, которая не может понять происхождение:

-bash: syntax error near unexpected token `do’ Ответ №1

попробовать:

sudo -u postgres psql

> CREATE USER root WITH SUPERUSER;

Ответ №2

Я хочу, чтобы он работал, сохраняя содержимое команды

for tbl in `psql -qAt -c «select tablename from pg_tables where schemaname = ‘public’;» demodoo` ;do psql -c «alter table $tbl owner to postgres» demodoo ;done

в файле myfile.sh, затем вызовите файл следующим образом:

sudo -u postgres /bin/bash myfile.sh

Спасибо за помощь

Оцените статью
Добавить комментарий