Название: QT3.3.8 PostgreSQL QProcess Отправлено: Примерный ученик от Июль 02, 2014, 16:28 для архивирования БД используется вызов стандартной утилиты psql:
Код: proc=new QProcess(this); Пример удаления БД. psql запрашивает пароль, но ни в readFromTest() ни в readFromOut() управление не попадает. Что у меня не так? Название: Re: QT3.3.8 PostgreSQL QProcess Отправлено: Fat-Zer от Июль 02, 2014, 17:16 psql запрашивает пароль с терминала (/dev/tty), а не с stdin'а... обмануть его можно только, если создать виртуальный терминал, но почти уверен, что в QProcess Qt3 такого нет... Так что овчинка выделки не стоит...
а почему собственно не использовать драйверы Qt для работы с БД? Название: Re: QT3.3.8 PostgreSQL QProcess Отправлено: Примерный ученик от Июль 02, 2014, 17:30 архив надежнее средствами СУБД.
Название: Re: QT3.3.8 PostgreSQL QProcess Отправлено: Fat-Zer от Июль 02, 2014, 18:29 архив надежнее средствами СУБД. ??ты ж ему на вход всё равно sql'евский скрипт подсовываешь... Название: Re: QT3.3.8 PostgreSQL QProcess Отправлено: vbv от Июль 02, 2014, 23:49 А что мешает использовать стандартный pg_dump?
Да и вообще в pg_hba.conf прописать пользователя без пароля с localhost. Но это все надо смотреть в настройках самого postgresql. И на мой взгляд все же без пароля, а пользователя в pg_hba.conf, и для backup использовать pg_dump. PS: A удаление сделать через dropdb. Или используя QSqlQuery на худой конец. PPS: Но и тут не все так гладко, надо проверить текущие подключения к бд. Иначе может колом стать. (точнее ждать придется долго.) Название: Re: QT3.3.8 PostgreSQL QProcess Отправлено: Примерный ученик от Июль 03, 2014, 21:51 архив надежнее средствами СУБД. ??ты ж ему на вход всё равно sql'евский скрипт подсовываешь... Название: Re: QT3.3.8 PostgreSQL QProcess Отправлено: Примерный ученик от Июль 03, 2014, 21:55 А что мешает использовать стандартный pg_dump? наверно так и сделаю, база локальная, выставлю ей доступ trust для локальных подключений. А я пробовал и pg_restote. Просто для создания архива пароль не нужен, а вот при восстановлении БД из архива - спрашивает.Да и вообще в pg_hba.conf прописать пользователя без пароля с localhost. Но это все надо смотреть в настройках самого postgresql. И на мой взгляд все же без пароля, а пользователя в pg_hba.conf, и для backup использовать pg_dump. PS: A удаление сделать через dropdb. Или используя QSqlQuery на худой конец. PPS: Но и тут не все так гладко, надо проверить текущие подключения к бд. Иначе может колом стать. (точнее ждать придется долго.) Название: Re: QT3.3.8 PostgreSQL QProcess Отправлено: vbv от Июль 04, 2014, 00:07 так дать этому пользователю (который делает backup) параметр WITH CREATEDB.
И при восстановлении заходить этим пользователем на <template> и восстанавливать. чего-то типа: cat db_dump.sql | psql -U trust_user template1 > result.log или использовать pg_restore. Название: Re: QT3.3.8 PostgreSQL QProcess Отправлено: Примерный ученик от Июль 06, 2014, 11:04 после запуска процесса идет запрос пароля, а как о нем узнать и как его передать?
Название: Re: QT3.3.8 PostgreSQL QProcess Отправлено: vbv от Июль 06, 2014, 12:11 Значит - чего-то не так происходит если все же спрашивает пароль.
Как вариант - посмотреть исходники pg_dump и pg_restore и прочитав API постгре - сделать это все на чистом С. |