Как настроить базу данных Postgres SQL локально на моем компьютере?
Я настроил производственную базу данных Postgres SQL. Если мне нужно выполнить работу по отладке, я не хочу взаимодействовать с производственной базой данных, иначе это повлияет на базу пользователей. Вместо этого мне нужно создать локальную среду, в которой ничего не изменится в производственной базе данных во время отладки.
Я использую Postgres SQL 10 и PGAdmin 4
Как я могу этого достичь?
Благодарю.
1 ответ
Вы можете настроить тестовую среду с помощью 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 на вашем хост-компьютере. Когда вы подключаете администратора к базе данных в пользовательском интерфейсе, имя хоста db
и порт 5432
Теперь, когда у вас настроен докер-контейнер, вы можете также рассмотреть возможность его использования для производства:)