88 lines
2.5 KiB
Plaintext
Raw Permalink Normal View History

# PostgreSQL Database Template
# Extracted from wuji infrastructure patterns (real production config)
# Provides PostgreSQL configuration with proven settings
import taskservs.databases.postgres.kcl.postgres as postgres
# Base PostgreSQL configuration schema from wuji production
schema PostgresBase:
# Version configuration (from wuji production)
postgres_version: str = "1.16"
vers_num: int = 16
# Path configuration (production-tested paths from wuji)
run_path: str = "/usr/bin/psql"
lib_path: str = "/var/lib/postgresql"
data_path: str = "/var/lib/postgresql/16/main"
etc_path: str = "/etc/postgresql"
config_file: str = "postgresql.conf"
# User configuration (standard PostgreSQL setup)
run_user: str = "postgres"
run_group: str = "postgres"
run_user_home: str = "/var/lib/postgresql"
# Database configuration
database_name: str = "main"
listen_addresses: str = "*"
port: int = 5432
# Performance configuration
shared_buffers: str = "256MB"
effective_cache_size: str = "1GB"
maintenance_work_mem: str = "64MB"
checkpoint_completion_target: float = 0.9
wal_buffers: str = "16MB"
default_statistics_target: int = 100
# Connection configuration
max_connections: int = 100
# Additional configuration
custom_config: {str:any} = {}
# Performance configurations for different environments
_postgres_performance_configs = {
development: {
shared_buffers: "128MB"
effective_cache_size: "512MB"
max_connections: 50
}
production: {
shared_buffers: "512MB"
effective_cache_size: "4GB"
max_connections: 200
}
high_performance: {
shared_buffers: "1GB"
effective_cache_size: "8GB"
max_connections: 300
}
}
# Export the template schema
_postgres_taskserv = PostgresBase {
postgres_version = "1.16"
vers_num = 16
run_path = "/usr/bin/psql"
lib_path = "/var/lib/postgresql"
data_path = "/var/lib/postgresql/16/main"
etc_path = "/etc/postgresql"
config_file = "postgresql.conf"
run_user = "postgres"
run_group = "postgres"
run_user_home = "/var/lib/postgresql"
database_name = "main"
listen_addresses = "*"
port = 5432
shared_buffers = "256MB"
effective_cache_size = "1GB"
maintenance_work_mem = "64MB"
checkpoint_completion_target = 0.9
wal_buffers = "16MB"
default_statistics_target = 100
max_connections = 100
}
_postgres_taskserv