我有一个詹金斯人和独立的postgresql数据库。在构建过程中,使用此数据库进行了一些测试。在每个jenkins作业开始时删除和创建新的数据库实例的最佳方法是什么?
答案 0 :(得分:0)
不知道这是否是最好的方法,但是我找到了足够好的解决方案。只需将postgresql-client(psql)添加到运行jenkins的计算机上,并向jenkins管道添加简单的sh命令以删除并重新创建db:
stage('Clean DB') {
sh "psql -h <db_host> -p <db_port> -U <db_user> -d <admin_db> -c \"DROP DATABASE IF EXISTS <db_name_to_drop>\""
sh "psql -h <db_host> -p <db_port> -U <db_user> -d <admin_db> -c \"CREATE DATABASE <db_name_to_create>\""
}
... other stages like build etc...
由于您无法删除当前登录的数据库实例,因此我连接到默认情况下由postgres创建的“ postgres”数据库(上面命令中的参数“ admin_db”),然后从此处删除并创建所需的数据库。还要记住,由于安全原因,密码不是在命令中输入的,而是保存在计算机上的文件或env变量中(有关更多详细信息,请参见psql文档)。