我有一个fabfile,我想运行一个命令来创建一个postgres数据库。
SQL请求是:
CREATE DATABASE "dbname"
WITH ENCODING = 'UTF8'
LC_COLLATE = 'en_US.UTF8'
LC_CTYPE = 'en_US.UTF8'
TEMPLATE = template0
OWNER = "dbowner";
我想使用以下方式运行它:
from fabric.api import run
run("""sudo su postgres --command "psql -c 'REQUEST HERE'" """)
但我找不到任何以正确的方式逃避它的方法。
你知道我该怎么办吗?
答案 0 :(得分:1)
好的,我终于这样做了:
run('sudo su postgres --command \'psql -e -c "CREATE DATABASE peopleask WITH ENCODING = \'"\'"\'UTF8\'"\'"\' LC_COLLATE = \'"\'"\'en_US.UTF8\'"\'"\' LC_CTYPE = \'"\'"\'en_US.UTF8\'"\'"\' TEMPLATE = template0 OWNER = peopleask;"\'')
答案 1 :(得分:0)
使用\
以双引号字符串转义双引号,并使用单引号字符串中的单引号。