Size: a a a

PostgreSQL + 1C + Linux

2021 June 17

AB

Andrew Bille in PostgreSQL + 1C + Linux
заставьте каждый из них на большой базе одновременно делать что-то осмысленное
источник

AB

Andrew Bille in PostgreSQL + 1C + Linux
сломать не сломает конечно
источник

LK

L K in PostgreSQL + 1C + Linux
Коллеги как преобразовать вывод в строку:
sudo /bin/su - postgres -c "/usr/bin/psql -qAt -c 'SELECT datname FROM pg_database;'"
postgres
template1
template0
источник

JS

Juriy Strashnov in PostgreSQL + 1C + Linux
| awk 'ORS=", "' не подойдет?
источник

JS

Juriy Strashnov in PostgreSQL + 1C + Linux
должно будет собрать строки в одну через запятую
источник

LK

L K in PostgreSQL + 1C + Linux
echo sudo /bin/su - postgres -c "/usr/bin/psql -qAt -c 'SELECT datname FROM pg_database;'"
postgres template1 template0
источник

2_

2flower _ in PostgreSQL + 1C + Linux
string_agg(datname)
https://postgrespro.ru/docs/postgresql/13/functions-aggregate
string_agg ( value text, delimiter text ) → text

string_agg ( value bytea, delimiter bytea ) → bytea

Соединяет все входные значения, отличные от NULL, в строку. Перед каждым значением, кроме первого, добавляется соответствующий разделитель, заданный параметром delimiter (если он отличен от NULL).
источник

LK

L K in PostgreSQL + 1C + Linux
источник

LK

L K in PostgreSQL + 1C + Linux
Спасибо вот сработало как на картике, здесь не удалось воспроизвести.
источник

2_

2flower _ in PostgreSQL + 1C + Linux
я так и не понял, что вы хотели
источник

LK

L K in PostgreSQL + 1C + Linux
Был у меня скрипт, работал на 9,10,11 на 12 перестал:
DB_BASE=`sudo /bin/su - postgres -c "/usr/bin/psql -qAt -c 'SELECT * FROM pg_database;'" | \
    cut -d"|" -f1 | /bin/grep -v template | /bin/grep -v postgres`
#DB_BASE="demo test" #конкретные базы
#DB_BASE="" #пропустить
echo $DB_BASE
for DB_NAME in $DB_BASE
источник

2_

2flower _ in PostgreSQL + 1C + Linux
ну как по мне самый правильный вариант готовить строку в sql как именно я вам выше написал,
а админское колдунство в баше это от безысходности, когда sql будет бессилен.
источник

LK

L K in PostgreSQL + 1C + Linux
Согласен, просто нужно за 30 с изменить скрипт, хотя бы временно.
echo sudo /bin/su - postgres -c "/usr/bin/psql -qAt -c 'SELECT datname FROM pg_database;'"| /bin/grep -v template | /bin/grep -v postgres
pgbench
источник

2_

2flower _ in PostgreSQL + 1C + Linux
вам в итоге что нужно вывести список баз без системных?
источник

LK

L K in PostgreSQL + 1C + Linux
Здесь в tg не видно что есть еще одни кавычки:
источник

LK

L K in PostgreSQL + 1C + Linux
Да.
источник

LK

L K in PostgreSQL + 1C + Linux
Вот вроде вывел.
источник

2_

2flower _ in PostgreSQL + 1C + Linux
ну и в чем проблема написать select string_agg(datname,',') from pg_database where not ( datname in ('template','postgres'));
источник

LK

L K in PostgreSQL + 1C + Linux
echo sudo /bin/su - postgres -c "/usr/bin/psql -qAt -c 'select string_agg(datname, ',') from pg_database where not ( datname ('template','postgres'));'"
ОШИБКА:  ошибка синтаксиса (примерное положение: ",")
LINE 1: select string_agg(datname, ,) from pg_database where not ( d...
источник

2_

2flower _ in PostgreSQL + 1C + Linux
вы после datname разделитель не указали, где ','? надо экранировать '
источник