Вопрос:
Я создаю команду 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
Спасибо за помощь