Mongorestore в скрипте Python с предикатом хоста - PullRequest
0 голосов
/ 14 декабря 2018

Bonjour, я хочу mongorestore a dump от azure VM к cosmosDB учетной записи.Я могу сделать это из командной строки с помощью stg следующим образом:

mongorestore --host <url>:10255 -u <secret> -p <secret> --ssl --sslAllowInvalidCertificates ./dump/ --numInsertionWorkersPerCollection 40 --batchSize 2

, но я не могу сделать это в :

>>> os.execvp('mongorestore',['-h <url>:10255 -u <secret> -p <secret> --ssl --sslAllowInvalidCertificates ./dump/ --numInsertionWorkersPerCollection 40 --batchSize 2'])
2018-12-14T12:31:29.163+0000    Failed: error connecting to db server: no reachable servers

или дажесамым современным способом, с подпроцессом, то же самое: (

1 Ответ

0 голосов
/ 19 декабря 2018

Я пытался реализовать ваши потребности, используя Python 3.6 на моей локальной машине, и мой пример кода работает нормально, как показано ниже, где используется метод subprocess.Popen.

Python 3.6.5 |Anaconda, Inc.| (default, Mar 29 2018, 13:32:41) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import subprocess
>>> subprocess.Popen('mongorestore --host 127.0.0.1:27017 ./dump/ --numInsertionWorkersPerCollection 40 --batchSize 2')
<subprocess.Popen object at 0x0000025E2D9B0AC8>
>>> 2018-12-19T14:56:40.687+0800        preparing collections to restore from
2018-12-19T14:56:40.688+0800    done

Или использовать os.popenтакже работает так же, как subprocess.Popen.

>>> import os
>>> os.popen('mongorestore --host 127.0.0.1:27017 ./dump/ --numInsertionWorkersPerCollection 40 --batchSize 2')
<os._wrap_close object at 0x0000025E2D9BE5C0>
>>> 2018-12-19T15:00:55.372+0800        preparing collections to restore from
2018-12-19T15:00:55.373+0800    done

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...