gpt4 book ai didi

postgresql - 在 GitLab CI 中设置 PostgreSQL

转载 作者:行者123 更新时间:2023-11-29 11:13:19 25 4
gpt4 key购买 nike

我正在尝试在 GitLab.com 上设置一个 CI 运行器,我想用它来运行需要 PostgreSQL 数据库连接的测试。 CI + PostgreSQL 的文档似乎过于简单,似乎告诉您一旦提供了连接信息,数据库设置就完成了。我可能误解了文档,因为我无法创建数据库。我的 gitlab-ci.yml 看起来像这样

image: node:latest

services:
- postgres:latest

variables:
POSTGRES_DB: rx_reactive_test
POSTGRES_USER: rx_reactive_tester
POSTGRES_PASSWORD: "1esdf3143"

cache:
paths:
- node_modules/

postgresql:
script:
- yarn install
- npm test

通过运行命令 npm test`,它将运行一些测试来建立与数据库的连接。但是这些测试失败并显示错误消息

pg-reactive
✓ should build connection with the test database.
1) should run a query returning one row.


1 passing (23ms)
1 failing

1) pg-reactive should run a query returning one row.:
Uncaught Error: connect ECONNREFUSED 127.0.0.1:5432
at Object.exports._errnoException (util.js:1033:11)
at exports._exceptionWithHostPort (util.js:1056:20)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1099:14)

这些测试在我的本地测试数据库中运行良好,因此我的 CI 设置一定有问题。如果对我的问题有任何帮助,我将不胜感激 :-)

最佳答案

在 GitLab CI 中,您的作业在 docker 容器中运行。因此,Postgres 不在本地主机上运行,​​而是在“postgres”上可访问的主机上运行(服务名称是解析为可用于访问数据库的 IP 的服务器名称)。

看起来 CI 设置了一个名为“CI”的 ENV 变量,这样您就可以将 CI 中用于测试的数据库连接从“localhost:5432”切换到“postgres:5432”,以防您在 GitLab CI 环境中运行。

关于postgresql - 在 GitLab CI 中设置 PostgreSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42966645/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com