【问题标题】:Postgresql createdb command hanging when running from groovy script从 groovy 脚本运行时,Postgresql createdb 命令挂起
【发布时间】:2013-08-05 19:37:38
【问题描述】:

我尝试了几种不同的方法来让它运行,但都没有成功!

目前,我有一个 groovy 脚本,它尝试执行 Postgresql (9.2) 'createdb' 命令,如下所示:

def createDbCmdLine = "-p 5433 --encoding=UTF8 --template=template0 myDatabaseName"
ant.exec(executable:'fullpath/bin/createdb') {
    arg(line: "$createDbCmdLine")
    env(key:"PGPASSWORD", value:"myPassword")
}

但是,这只是永远挂起。当我尝试创建一个字符串并执行时:

["sh", "-c", theStringHere].execute()

结果是一样的 - 永远挂起。不过,在这种情况下,我打印了字符串。当我在命令行上(直接或通过'sh -c')运行它时,它运行良好 - 命令完成后,我可以通过'psql'进入postgresql并执行\l并查看创建的数据库。

谁知道问题出在哪里?

【问题讨论】:

    标签: postgresql groovy postgresql-9.2


    【解决方案1】:

    最可能的问题是没有看到环境变量并挂起等待密码。

    我认为你有两个选择。第一种是继续 shell 转义并尝试使用 .pgpass 文件,但另一种是连接到 postgres(或其他现有数据库)并手动创建数据库。为此,发出以下 SQL:

     CREATE DATABASE myDatabaseName WITH TEMPLATE template0 ENCODING utf8;
    

    【讨论】:

      猜你喜欢
      • 2013-09-14
      • 2015-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-30
      • 2011-09-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多