Reputation: 431
Using Scriptler can not connect to Postgresql via Jenkins groovy, neither via executing psql command, nor via using jdbc:
command = """
PGPASSWORD=1111\
psql -h xxxx.rds.amazonaws.com\
-U master -d yyy -c "select * from table"
"""
proc = command.execute()
proc.waitFor()
return proc.in.text
I receive the error
Cannot run program "PGPASSWORD=1111": error=2, No such file or directory
import groovy.sql.Sql
def dbUrl = "jdbc:postgresql://xxxx.rds.amazonaws.com/yyy"
def dbUser = "master"
def dbPassword = "1111"
def dbDriver = "org.postgresql.jdbcDriver"
def sql = Sql.newInstance(dbUrl, dbUser, dbPassword, dbDriver)
it returns
java.lang.ClassNotFoundException: org.postgresql.jdbcDriver
I installed plugins database
, PostgreSQL API Plugin
& database-postgresql
. Jenkins v.2.176.1
Upvotes: 2
Views: 2397
Reputation: 1923
So your first attempt via command.execute() will not work because you are trying to use shell command syntax and you're not running a shell.
The 2nd one will not work because you have to tell Groovy where to find the postgress jdbc library. You may be able to do this with Groovy Grape.
Personally I would do psql command using a shell step.
Upvotes: 0