在 GitLab 中设置 PostgreSQL CI
Setting up PostgreSQL in GitLab CI
我正在尝试在 GitLab.com 设置 CI 运行ner,我想将其用于 运行 需要 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 环境中。
我正在尝试在 GitLab.com 设置 CI 运行ner,我想将其用于 运行 需要 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 环境中。