Database Client Setup
The database client is configured insrc/db/index.ts:
client: PostgreSQL connection pool frompglibraryschema: All table definitions fromschema.tscasing: Automatic conversion tosnake_casefor SQL querieslogger: Query logging enabled in development
Importing the Database Client
Import the configured client throughout your application:Query Patterns
Select Queries
Basic select query:Insert Operations
Insert single record:Update Operations
Update single record:Delete Operations
Delete single record:Query Operators
Drizzle provides type-safe operators:Real-World Example: Rate Limiting Store
The rate limiting implementation demonstrates advanced Drizzle patterns:Type Safety with drizzle-zod
Drizzle integrates with Zod for runtime type validation:Using Schemas
Validate data at runtime:Custom Schemas
Extend generated schemas:Advanced Patterns
Transactions
Use transactions for atomic operations:Prepared Statements
Optimize repeated queries:Raw SQL
For complex queries, use raw SQL:Joins
Query across tables:Performance Tips
1. Use .limit() for Single Records
2. Select Only Needed Columns
3. Use Prepared Statements for Repeated Queries
Prepared statements are cached and reused:4. Batch Operations
Use bulk inserts instead of multiple single inserts:Error Handling
Handle database errors gracefully:Development Tools
Query Logging
Queries are automatically logged in development:Drizzle Studio
Visual database browser:http://localhost:3003
Connection Management
The connection pool is managed bypg:
