Postgresql ansible在运行sql文件时突然出现语法错误

Postgresql ansible在运行sql文件时突然出现语法错误,postgresql,ansible,ansible-2.x,Postgresql,Ansible,Ansible 2.x,我有一个ansible角色,它运行sql文件中的几个查询 -名称:示例查询 postgresql\u查询: db:test_db 路径到脚本:/tmp/test.sql 文件包含我刚刚添加的一个查询,以显示失败的地方 做 $do$ 开始 如果不存在,则从pg_角色中选择 其中rolname='my_user'然后 创建用户myuser NOLOGIN; 将数据库myDataBase上的连接授予myuser; 将SCHEAMA myschema的使用权授予myuser; 如果结束; 终止 $do$

我有一个ansible角色,它运行sql文件中的几个查询

-名称:示例查询 postgresql\u查询: db:test_db 路径到脚本:/tmp/test.sql 文件包含我刚刚添加的一个查询,以显示失败的地方

做 $do$ 开始 如果不存在,则从pg_角色中选择 其中rolname='my_user'然后 创建用户myuser NOLOGIN; 将数据库myDataBase上的连接授予myuser; 将SCHEAMA myschema的使用权授予myuser; 如果结束; 终止 $do$; 它过去工作得很好,但突然我开始在\$$\开始或接近\$$\开始时出现语法问题ansible postgresql\ U查询未终止的美元引号字符串\

同一个未触及的文件过去可以工作,但现在已停止。我在一台远程机器上运行这个程序,ansible和其他安装由管理员控制

ansible设置或版本是否有任何变化可以解释这一点?如果是这样,我如何强制postgress_查询将我的多行查询视为一个单独的查询,如setSingleline=false?

使用postgresql_db而不是针对ansible>3的postgresql_查询

ansible>3的工作解决方案:

- postgresql_db:
    db: "your-db"
    state: restore
    ...
    target: "/path/to/script-containing-dollar-quotes.sql"
ansible的工作解决方案使用postgresql\u db代替postgresql\u查询为ansible>3制定

ansible>3的工作解决方案:

- postgresql_db:
    db: "your-db"
    state: restore
    ...
    target: "/path/to/script-containing-dollar-quotes.sql"

ansible的工作解决方案简单问题:您正在寻找ansible方面的变化。但是,自从postgres停止工作后,您是否升级或更改了它的配置?否,我使用的是asnible postgress_query的内置客户端,amd我的服务器是远程服务器,没有升级到服务器。在这种情况下,您是否尝试将ansible降级到您以前使用的版本,以查看ig是否修复了该问题?否,我没有控制ansible安装/升级的选项,一切都由管理员完成。。我得到了playbook命令的虚拟链接。。根据管理员的说法,他们没有升级,但不确定是否有任何自动升级。如果管理员不想为您提供调试所需的访问权限,请将问题传递给您的管理员。我不知道什么是虚拟链接,但这听起来像是我永远不想遇到的东西。或您可以使用两个docker容器在本地计算机上自己调试它。在这种情况下,你拥有你想要的所有控制权。简单的问题是:你正在寻找一个变化的方面。但是,自从postgres停止工作后,您是否升级或更改了它的配置?否,我使用的是asnible postgress_query的内置客户端,amd我的服务器是远程服务器,没有升级到服务器。在这种情况下,您是否尝试将ansible降级到您以前使用的版本,以查看ig是否修复了该问题?否,我没有控制ansible安装/升级的选项,一切都由管理员完成。。我得到了playbook命令的虚拟链接。。根据管理员的说法,他们没有升级,但不确定是否有任何自动升级。如果管理员不想为您提供调试所需的访问权限,请将问题传递给您的管理员。我不知道什么是虚拟链接,但这听起来像是我永远不想遇到的东西。或您可以使用两个docker容器在本地计算机上自己调试它。在这种情况下,你拥有所有你想要的控制权。