Как использовать Python Subprocess для удаления схемы базы данных? - PullRequest
0 голосов
/ 22 апреля 2019

Я хочу удалить схему базы данных (PostgreSQL) с помощью подпроцесса python.

Я пришел с этим:

subprocess.call(['psql', '-U', DB_USER, DB_NAME, 'drop schema', SCHEMA_NAME, 'cascade'])

, но он дал мне эту ошибку:

psql: предупреждение: дополнительный аргумент командной строки «отбрасывать схему» игнорируется
psql: предупреждение: дополнительный аргумент командной строки «демо1» игнорируется
psql: предупреждение: дополнительный аргумент командной строки «каскад» игнорируется

1 Ответ

0 голосов
/ 22 апреля 2019

В документации по psql говорится, что команда передается через опцию -c как одно значение.Следующее использует параметр -d, так как psql не разрешает параметры после позиционных аргументов, чтобы избежать переупорядочения параметров.

subprocess.call(['psql', '-U', DB_USER, '-d', DB_NAME, 
    '-c', ' '.join(['drop schema', SCHEMA_NAME, 'cascade'])])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...