Configuration¶
Database Connection¶
Connection String Format¶
# PostgreSQL connection string format
DATABASE_URL = "postgresql://username:password@host:port/database_name"
# For async operations
DATABASE_URL = "postgresql+asyncpg://username:password@host:port/database_name"
Environment Variables¶
Create a .env file in your project root:
Load in your application:
import os
from dotenv import load_dotenv
from dbsync_py import create_session
load_dotenv()
session = create_session(os.getenv("DATABASE_URL"))
Connection Options¶
Pool Configuration¶
from dbsync_py import create_session
session = create_session(
database_url="postgresql://user:pass@localhost/cardano_db",
pool_size=10,
max_overflow=20,
pool_timeout=30
)
SSL Configuration¶
Advanced Configuration¶
Custom Session Configuration¶
from dbsync_py.config import DatabaseConfig
config = DatabaseConfig(
database_url="postgresql://user:pass@localhost/cardano_db",
echo=True, # Enable SQL logging
pool_pre_ping=True, # Validate connections
pool_recycle=3600 # Recycle connections every hour
)
session = create_session(config=config)
Testing Configuration¶
For testing, you might want to use a separate test database: