如何使用Python Subprocess删除数据库模式?

问题描述 投票:0回答:1

我想使用python子进程删除数据库(PostgreSQL)模式。

我想出了这个:

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

但它给了我这个错误: psql:警告:忽略额外的命令行参数“drop schema” psql:警告:忽略额外的命令行参数“demo1” psql:警告:忽略额外的命令行参数“cascade”

python database postgresql subprocess database-schema
1个回答
0
投票

psql的文档声明该命令通过-c选项作为单个值传递。以下使用-d选项,因为psql不允许在位置参数之后使用选项,以避免重新排序选项。

subprocess.call(['psql', '-U', DB_USER, '-d', DB_NAME, 
    '-c', ' '.join(['drop schema', SCHEMA_NAME, 'cascade'])])
© www.soinside.com 2019 - 2024. All rights reserved.