Ну тут tg наверно опускает символы, я тупо вставил как здесь: ну и в чем проблема написать select string_agg(datname,',') from pg_database where not ( datname in ('template','postgres'));
'select string_agg(datname, ',') from pg_database where not ( datname ('template','postgres'));'-у вас текст в одинарных кавычках, что будет когда он дойтет до следующей... datname, ','...
я просто не могу угадать что должно быть, вы можете использовать regex в самом sql или сделать конструкцию в скобках. (datname like 'template%' or datname='postgres') тогда все template исключаться... но если у вас бд с именем template_my_db.. она тоже отсеется
Для авто dump нужно отсечь служебные базы, а информационные вывести в строку для DB_BASE=`sudo /bin/su - postgres -c "/usr/bin/psql -qAt -c 'SELECT datname FROM pg_database;'"| \ /bin/grep -v template | /bin/grep -v postgres` echo $DB_BASE for DB_NAME in $DB_BASE do done
у меня сейчас под рукой нет линукса, мой запрос select string_agg(datname,',') as datname from pg_database where not (datname like 'template%' or datname='postgres'); вам вернет pgbench
добрый день! не смог нагуглить, в чем разница между тремя следующими сущностями: postgresql-12-setup initdb /usr/pgsql-12/bin/initdb /usr/pgsql-12/bin/pg_ctl init помогите, подскажите, пожалуйста
Не пробовал но нехочется из скрипта вызывать другой скрипт, мне нужно в скрипте передать в DB_BASE=pgbench Ваш пример очень интересен, задать условия, но не удается экранировать кавычки.
Не в том плане, что не хочу, а ума не хватает так сделать. Вот если бы Вы подсказали как завернуть результат Вашего запроса в DB_BASE= Это было бы круче крутого, а так просто круто. Спасибо развивает мозг.