Бросьте и создайте базу данных postgresql в jenkins - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть jenkins и отдельный postgresql db.Во время сборки есть несколько тестов, использующих эту базу данных.Каков наилучший способ отбросить и создать новый экземпляр БД в начале каждого задания jenkins?

1 Ответ

0 голосов
/ 03 декабря 2018

Не уверен, что это лучший способ, но я нашел достаточно хорошее решение.Просто добавили postgresql-client (psql) на машину, на которой запущен jenkins, и добавили простую команду sh в конвейер jenkins, чтобы отбросить и воссоздать 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" db, который создается postgres по умолчанию (параметр "admin_db" в приведенной выше команде), и оттуда я сбрасываю и создаю необходимую БД.Также помните, что в целях безопасности пароль не вводится в команде, а сохраняется в файле на компьютере или в переменной env (дополнительную информацию см. В документации psql).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...