CircleCI 2.0 中的多个 Postgres 数据库
Multiple Posgres databases in CircleCI 2.0
如何让我的 Postgres 映像创建多个数据库?例如,我想做这样的事情:
- image: circleci/postgres:9.6.7-alpine
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: password
POSTGRES_DB: db_test
POSTGRES_DB: db_special
有办法吗?如果没有,我该如何着手创建第二个数据库,其角色与第一个数据库相同?
免责声明:CircleCI 的开发倡导者
我看到了三个选项。
- 自己扩展 PostgreSQL Docker 映像,让它默认创建您需要的额外数据库。
- 通过您的应用程序(应该只是一个 SQL 行)或使用 PostgreSQL CLI(您需要将其安装在容器中)即时创建其他数据库.
- 同时使用两个或多个 PostgreSQL 容器,每个数据库一个。然后您还需要更改其中之一的默认主机名。第一个位于
localhost
,第二个位于您设置的名称。
这是#3 的示例:
- image: circleci/my-main-image:latest
- image: circleci/postgres:9.6.7-alpine
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: password
POSTGRES_DB: db_test
- image: circleci/postgres:9.6.7-alpine
name: pg2
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: password
POSTGRES_DB: db_special
只是为了补充第二个选项。
如果您不在 docker 图像 bash 中,但在根 machine/container 中,您也可以 运行:
psql -h localhost -p PORT-U root -d FIRST_DB -c "create database NEW_DB;"
端口:通常为 5432
FIRST_DB:在你的情况下 db_test
NEW_DB:在你的情况下 db_special
同样,这是一个补充,因为通常在 circle ci 上,您 运行 您的命令行来自您的第一个图像而不是来自 Postgres 图像。
如果你看看 https://circleci.com/docs/2.0/postgres-config/
他们有 2 张图片的示例:首先使用 go + postgres 或 java + postgres。
如何让我的 Postgres 映像创建多个数据库?例如,我想做这样的事情:
- image: circleci/postgres:9.6.7-alpine
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: password
POSTGRES_DB: db_test
POSTGRES_DB: db_special
有办法吗?如果没有,我该如何着手创建第二个数据库,其角色与第一个数据库相同?
免责声明:CircleCI 的开发倡导者
我看到了三个选项。
- 自己扩展 PostgreSQL Docker 映像,让它默认创建您需要的额外数据库。
- 通过您的应用程序(应该只是一个 SQL 行)或使用 PostgreSQL CLI(您需要将其安装在容器中)即时创建其他数据库.
- 同时使用两个或多个 PostgreSQL 容器,每个数据库一个。然后您还需要更改其中之一的默认主机名。第一个位于
localhost
,第二个位于您设置的名称。
这是#3 的示例:
- image: circleci/my-main-image:latest
- image: circleci/postgres:9.6.7-alpine
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: password
POSTGRES_DB: db_test
- image: circleci/postgres:9.6.7-alpine
name: pg2
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: password
POSTGRES_DB: db_special
只是为了补充第二个选项。
如果您不在 docker 图像 bash 中,但在根 machine/container 中,您也可以 运行:
psql -h localhost -p PORT-U root -d FIRST_DB -c "create database NEW_DB;"
端口:通常为 5432
FIRST_DB:在你的情况下 db_test
NEW_DB:在你的情况下 db_special
同样,这是一个补充,因为通常在 circle ci 上,您 运行 您的命令行来自您的第一个图像而不是来自 Postgres 图像。
如果你看看 https://circleci.com/docs/2.0/postgres-config/
他们有 2 张图片的示例:首先使用 go + postgres 或 java + postgres。