Pour les environnements de production, nous recommandons fortement d'utiliser une version hébergée de PostgreSQL auprès de votre fournisseur cloud. Cette approche offre plusieurs avantages :
# Configuration minimale recommandée
Instance Type: db.t3.medium
Storage: 100 GB
Multi-AZ: Enabled
Version: PostgreSQL 14 ou supérieure
# Configuration minimale recommandée
Machine Type: db-g1-small
Storage: 100 GB
High Availability: Enabled
Version: PostgreSQL 14 ou supérieure
# Configuration minimale recommandée
Compute: General Purpose, 2 vCores
Storage: 100 GB
Version: PostgreSQL 14 ou supérieure
Pour le développement local, vous pouvez installer PostgreSQL directement sur votre machine.
docker-compose.yml :version: '3.8'
services:
postgres:
image: postgres:14
environment:
POSTGRES_USER: devana
POSTGRES_PASSWORD: devana_password
POSTGRES_DB: devana
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
command:
- "postgres"
- "-c"
- "max_connections=1000"
- "-c"
- "shared_buffers=256MB"
volumes:
postgres_data:
docker-compose up -d
# Installation
sudo apt update
sudo apt install postgresql-14
# Démarrage du service
sudo systemctl start postgresql
sudo systemctl enable postgresql
# Création de l'utilisateur et de la base de données
sudo -u postgres psql -c "CREATE USER devana WITH PASSWORD 'devana_password';"
sudo -u postgres psql -c "CREATE DATABASE devana OWNER devana;"
# Installation
brew install postgresql@14
# Démarrage du service
brew services start postgresql@14
# Création de l'utilisateur et de la base de données
createuser -s devana
createdb -O devana devana
Ajoutez ces paramètres dans votre postgresql.conf :
# Connexions
max_connections = 1000
shared_buffers = 256MB
# Performance
effective_cache_size = 1GB
maintenance_work_mem = 128MB
work_mem = 8MB
# WAL
wal_level = replica
max_wal_size = 1GB
min_wal_size = 80MB
# Query Planner
random_page_cost = 1.1
effective_io_concurrency = 200
Configurez votre connexion dans les variables d'environnement de Devana :
DATABASE_URL=postgresql://devana:devana_password@localhost:5432/devana
Pour la production, utilisez l'URL de connexion fournie par votre service cloud.
L'initialisation et les migrations de la base de données sont gérées automatiquement par le service API de Devana au démarrage. Aucune action manuelle n'est nécessaire.
Note: Assurez-vous simplement que la base de données est créée et accessible via l'URL de connexion fournie dans les variables d'environnement.
# Sauvegarde
pg_dump -U devana -d devana -F c -b -v -f backup.dump
# Restauration
pg_restore -U devana -d devana -v backup.dump
-- Taille des tables
SELECT schemaname, relname, pg_size_pretty(pg_total_relation_size(relid))
FROM pg_stat_user_tables
ORDER BY pg_total_relation_size(relid) DESC;
-- Connexions actives
SELECT * FROM pg_stat_activity WHERE state = 'active';
-- Performances des index
SELECT schemaname, tablename, indexname, idx_scan, idx_tup_read
FROM pg_stat_user_indexes
ORDER BY idx_scan DESC;
Pour toute question ou problème :