Не выполняются команды после подключения к БД в postgres?

БД развернута в Docker, если это важно, но после ввода любой команды (даже \du) строка переводится на новую и всё.
Понимаю, что обычно проблема связана с тем, что в конце строки необходимо ставить точку с запятой, но для команды \du или \q обычно работает и без точки с запятой, а сейчас не работает ни с точкой запятой, ни без нее. В чем может быть проблема?
65f7f1d0963a5020475775.png
  • Вопрос задан
  • 120 просмотров
Решения вопроса 1
fzfx
@fzfx
18,5 дм
Если при выполнении через docker/podman команды в контейнере (параметр exec) предполагается, что потребуется пользовательский ввод (т. е., как в вопросе выше, не только запустить psql, но и вводить команды для него), то важно не забывать про параметр -i docker/podman, который и обеспечивает работу ввода (передачу команд с клавиатуры запущенной через exec в контейнере программе).
Обеспечиваемый параметром -i функционал не "бесплатен" (требует ресурсов системы и подвержен блокировкам либо является их источником), именно поэтому он вынесен в отдельный параметр, что позволяет для программ, требующим пользовательского ввода (или, правильнее сказать, ввода через stdin), предоставить его, задействовав соответствующие ресурсы и механизмы; при запуске программ, не требующих такового ввода, в свою очередь, опустив параметр -i, можно исключить их блокирование по вводу через stdin (возможно ошибочному или непреднамеренному), не выделять на обработку ввода ресурсы.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы