Я хочу изменить владельца базы данных с postgres другому пользователю, используя скрипт bash.
Я нашел ссылку в stackoverflow следующей командой:
# Change owner of tables and views.
for tbl in $(pgexec "SELECT table_name FROM information_schema.tables WHERE table_schema='$schema';" $database) \
$(pgexec "SELECT table_name FROM information_schema.views WHERE table_schema='$schema';" $database)
do
pgexec "ALTER TABLE \"$schema\".\"$tbl\" OWNER TO $role;" $database
done
Iвызовите команду, используя следующую функцию:
function pgexec() {
local cmd=$1
local database=$2
sudo -u postgres psql -d $database --record-separator=\0 -c $cmd
Я получаю следующую ошибку:
relation public.table_name doesn't exist
pgexec
Я протестировал несколько других запросов SQL и работает.