Costruisco un comando bash in uno script PHP. Il comando integrato è tale da:psql - La radice del ruolo non esiste
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 "
Quando provo ad eseguire questo comando in una shell, ottengo questo errore:
psql: FATAL: role "root" does not exist
Perché questo si verificano, mentre eseguo il comando sotto utente postgres ?
Grazie Cheers,
EDIT cambio il comando per
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
ma ora ho un altro errore, che non riesco a capire l'origine:
-bash: syntax error near unexpected token `do'
controllare questo collegamento: http://serverfault.com/questions/601140/whats-the-difference-tra between-sudo-su-postgres-and-sudo-u-postgres –
Grazie, ho modificato la mia domanda dopo aver letto il post , ma ottengo un errore – renard
Questo link può aiutarti: http://stackoverflow.com/questions/11919391/postgresql-error-fatal-role-username-does-not-exist –