【发布时间】:2018-08-29 00:08:00
【问题描述】:
我已经配置了一个生产 postgres sql 数据库。 如果我需要进行调试工作,我不想与生产数据库交互,否则会影响用户群。相反,我需要创建一个本地环境,这样在调试期间生产数据库中不会发生任何变化。
我正在使用 Postgres SQL 10 和 PGAdmin 4
我怎样才能做到这一点?
谢谢。
【问题讨论】:
标签: postgresql pgadmin-4
我已经配置了一个生产 postgres sql 数据库。 如果我需要进行调试工作,我不想与生产数据库交互,否则会影响用户群。相反,我需要创建一个本地环境,这样在调试期间生产数据库中不会发生任何变化。
我正在使用 Postgres SQL 10 和 PGAdmin 4
我怎样才能做到这一点?
谢谢。
【问题讨论】:
标签: postgresql pgadmin-4
你可以用 docker 搭建一个测试环境。
首先是一个 docker-compose.yml 文件:
version: "3"
services:
db:
image: postgres:10-alpine
volumes:
- ./local_path:/var/lib/postgresql/data
ports:
- "8000:5432"
expose:
- "5432"
admin:
image: dpage/pgadmin4
environment:
- PGADMIN_DEFAULT_EMAIL=admin@admin.com
- PGADMIN_DEFAULT_PASSWORD=admin
ports:
- "8080:80"
请参阅 docker postgres 映像的文档,了解如何设置环境变量来定义用户/密码/数据库名称。 https://hub.docker.com/_/postgres/
我对 pgadmin 不太熟悉,但容器的设置选项最少: https://hub.docker.com/r/dpage/pgadmin4/
然后你用sudo docker-compose up启动容器。
db 容器在你的宿主机上发布它的 8000 端口,所以应该不会和宿主机上运行的 postgres 服务器冲突。
连接:
psql -h localhost -p 8000 -U postgres
管理页面应该在您主机上的端口 8080 上可用。
在 UI 中将 admin 连接到数据库时,主机名为 db,端口为 5432
现在您已经设置了一个 docker 容器,您也可以考虑将其用于生产:)
【讨论】: