Файлы записываются в каталог с помощью запроса COPY
:
Copy (SELECT * FROM animals) To '/var/lib/postgresql/data/backups/2020-01-01/animals.sql' With CSV DELIMITER ',';
Однако, если каталог 2020-01-01
не существует, мы получаем ошибку
не удалось открыть файл "/var/lib/postgresql/data/backups/2020-01-01/animals.sql" для записи: нет такого файла или каталога
Postge SQL server выполняется внутри контейнера Docker с сопоставлением томов /mnt/backups:/var/lib/postgresql/data/backups
Запрос Copy
отправляется из приложения Node.js вне контейнера Docker.
сопоставленный каталог хоста /mnt/backups
был создан Docker Compose и принадлежит root
, поэтому приложение Node.js, отправляющее запрос COPY
, не может создать отсутствующие каталоги из-за недостаточных разрешений.
Файл резервной копии предназначен для передачи из контейнера Docker на хост Docker.
Вопрос : можно ли использовать запрос SQL для запроса PostgreSQL 11.2 создать каталог, если он не существует? Если нет, как вы будете рекомендовать создание каталога?
Использование Node.js 12.14.1 на хосте Ubuntu 18.04. Использование PostgreSQL 11.2 внутри контейнера, Docker 19.03.5