53 lines
1.9 KiB
Markdown
53 lines
1.9 KiB
Markdown
# Quickstart (PostgreSQL Partitioning Test)
|
|
|
|
## Start Environment
|
|
> **Note**: If `docker` commands fail with permission errors, run `newgrp docker` or ensure your user is in the `docker` group (`sudo usermod -aG docker $USER`) and log out/in.
|
|
|
|
```bash
|
|
cd postgresql/docker
|
|
sudo ./run_test_env.sh --pg 16 --zabbix 7.0
|
|
# Options: --pg <16|17|18> --zabbix <7.0|7.4>
|
|
```
|
|
|
|
## Verify
|
|
```bash
|
|
# Check status
|
|
docker ps
|
|
|
|
# SQL Shell
|
|
docker exec -it zabbix-db-test psql -U zabbix -d zabbix
|
|
# Password: zabbix
|
|
```
|
|
|
|
## Reset
|
|
```bash
|
|
docker compose down -v
|
|
```
|
|
|
|
## Partitioning
|
|
See [PARTITIONING.md](../PARTITIONING.md) for details on the implemented declarative partitioning.
|
|
|
|
## 🐳 Docker Deployment (Production)
|
|
The `run_test_env.sh` script automatically populates `init_scripts` for the test environment. To deploy this in your own Docker setup:
|
|
|
|
1. **Mount Scripts**: Map the SQL procedures to `/docker-entrypoint-initdb.d/` in your PostgreSQL container.
|
|
2. **Order Matters**: Scripts execute alphabetically. Ensure they run **after** the Zabbix schema import.
|
|
|
|
**Example `docker-compose.yml` snippet:**
|
|
```yaml
|
|
services:
|
|
postgres-server:
|
|
image: postgres:16
|
|
volumes:
|
|
# Mount Zabbix Schema first (e.g., as 01_schema.sql)
|
|
- ./zabbix_schema.sql:/docker-entrypoint-initdb.d/01_schema.sql
|
|
|
|
# Mount Partitioning Procedures (Prefix to run AFTER schema)
|
|
- ../postgresql/procedures/00_partitions_init.sql:/docker-entrypoint-initdb.d/02_00_part_init.sql
|
|
- ../postgresql/procedures/01_auditlog_prep.sql:/docker-entrypoint-initdb.d/02_01_audit_prep.sql
|
|
- ../postgresql/procedures/02_maintenance.sql:/docker-entrypoint-initdb.d/02_02_maintenance.sql
|
|
- ../postgresql/procedures/03_enable_partitioning.sql:/docker-entrypoint-initdb.d/02_03_enable.sql
|
|
- ../postgresql/procedures/04_monitoring_view.sql:/docker-entrypoint-initdb.d/02_04_monitor.sql
|
|
```
|
|
The container will automatically execute these scripts on first startup, partitioning the tables.
|