【问题标题】:How to use Python Subprocess to drop a database schema?如何使用 Python Subprocess 删除数据库模式?
【发布时间】:2019-04-22 09:33:30
【问题描述】:

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

我想出了这个:

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

但它给了我这个错误:

psql:警告:额外的命令行参数“drop schema”被忽略
psql:警告:额外的命令行参数“demo1”被忽略
psql:警告:额外的命令行参数“级联”被忽略

【问题讨论】:

    标签: python database postgresql subprocess database-schema


    【解决方案1】:

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

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

    【讨论】:

    • 成功了,谢谢。但我没有使用“-d”,它仍然有效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多