Echo uses PostgreSQL with Prisma ORM for database management. This guide covers setup, schema overview, and best practices.
-
Create a PostgreSQL database:
createdb echo -
Configure database connection in
.env:DATABASE_URL="postgresql://user:password@localhost:5432/echo"
-
Initialize the database:
bunx prisma generate bunx prisma migrate dev
- User profiles and roles
- Permissions system
- Authentication data
- Tickets and conversations
- Agent assignments
- Support queue management
- Guild settings
- Audit logging
- Channel configurations
- Virtual currency
- Inventory system
- Achievements and levels
- AI training data
- Community resources
- Documentation
-
Generate Client
npx prisma generate
Updates TypeScript types after schema changes
-
Development Updates
npx prisma migrate dev
Creates and applies migrations in development
-
Production Deployment
npx prisma migrate deploy
Safely applies migrations in production
-
View Studio
npx prisma studio
Opens web interface to browse and edit data
-
Indexes
- Foreign keys are indexed by default
- Custom indexes on frequently queried fields
- Composite indexes for complex queries
-
Relations
- Explicit relation naming
- Strategic use of eager loading
- Proper cascade settings
-
Field Types
- BigInt for Discord IDs
- Text for long content
- JSON for flexible data
-
Schema Changes
- Create focused, atomic migrations
- Test migrations thoroughly
- Document breaking changes
- Back up before production updates
-
Data Operations
- Use transactions for related changes
- Implement proper error handling
- Follow rate limiting guidelines
- Regular data cleanup
-
Security
- Validate all user input
- Use prepared statements
- Regular security audits
- Proper access controls