Gitlab配置postgresql服务
刚开始使用GitLab,我的配置似乎无法正常工作。我正在使用以下命令:Gitlab配置postgresql服务,gitlab,gitlab-ci,Gitlab,Gitlab Ci,刚开始使用GitLab,我的配置似乎无法正常工作。我正在使用以下命令: image: maven:3.3-jdk-8-alpine stages: - prepare - build services: - postgres:latest variables: POSTGRES_DB: my_database POSTGRES_USER: runner POSTGRES_PASSWORD: runner prepare_db: stage: prepare
image: maven:3.3-jdk-8-alpine
stages:
- prepare
- build
services:
- postgres:latest
variables:
POSTGRES_DB: my_database
POSTGRES_USER: runner
POSTGRES_PASSWORD: runner
prepare_db:
stage: prepare
image: postgres
script:
- export PGPASSWORD=$POSTGRES_PASSWORD
- psql -h "postgres" -U "$POSTGRES_USER" -d "$POSTGRES_DB" -c "CREATE EXTENSION \"uuid-ossp\";"
build:
stage: build
script: mvn clean test
如果我只想编译我的代码,那么构建将是mvn clean compile
,但要运行测试,我需要一个PostgreSQL实例。在我的代码中,我依赖于uuid,因此我需要确保安装了uuid ossp扩展
在我的prepare_db
作业中,我可以连接到Postgres实例并执行该命令,我还通过发出第二个脚本命令SELECT uuid_generate_v4(),验证扩展是否正确安装代码>并返回一个uuid
当运行程序到达构建
作业时,它一直告诉我uuid\u generate\u v4()函数不存在。我的prepare\u db
作业是否在不同的Postgres实例上运行?之所以发生这种情况,是因为prepare\u db作业与构建作业完全隔离。所以基本上它没有准备任何东西。要修复它,请执行以下步骤:
.prepare_db: &prepare_db |
export PGPASSWORD=$POSTGRES_PASSWORD
psql -h "postgres" -U "$POSTGRES_USER" -d "$POSTGRES_DB" -c "CREATE EXTENSION \"uuid-ossp\";"
build:
stage: build
script:
- *prepare_db
- mvn clean test
您是否仔细检查了您在测试中是否使用了正确的db名称?@Ekans,是的,我在测试设置中使用的URL是jdbc:postgresql://postgres:5432/my_database