This directory contains the complete database schema management system for the Pokemon Card Price Checker (PCPC) project. It provides enterprise-grade database schema documentation, migration framework, seed data management, and operational tools for Azure Cosmos DB.
db/
├── schemas/ # Schema definitions and documentation
│ ├── containers/ # Container schema definitions (JSON Schema)
│ ├── indexes/ # Indexing policies and strategies
│ └── partitioning/ # Partition key strategies and documentation
├── migrations/ # Database migration framework
│ ├── scripts/ # Version-controlled migration scripts
│ ├── framework/ # Migration execution and management tools
│ └── README.md # Migration procedures and guidelines
├── seed-data/ # Development and testing seed data
│ ├── sets/ # Pokemon card sets data
│ ├── cards/ # Sample card data
│ ├── scripts/ # Seed data management tools
│ └── README.md # Seed data procedures
├── docs/ # Database documentation
│ ├── schema-design.md # Entity relationships and design
│ ├── performance-optimization.md # Query and performance guidelines
│ ├── backup-recovery.md # Operational procedures
│ └── troubleshooting.md # Common issues and solutions
├── tools/ # Database management utilities
│ ├── schema-validator.js # Schema validation tools
│ ├── performance-analyzer.js # Performance analysis utilities
│ └── data-export-import.js # Data management tools
└── README.md # This file
The PCPC application uses Azure Cosmos DB with SQL API in serverless mode. The database contains the following containers:
-
Sets - Pokemon card set information
- Partition Key:
/series - Purpose: Store Pokemon card set metadata and release information
- Partition Key:
-
Cards - Individual Pokemon card data
- Partition Key:
/setId - Purpose: Store card details, pricing, and metadata
- Partition Key:
Note: The current implementation includes only these 2 containers. Additional containers (Cache, PricingHistory) may be added in future phases as the system evolves.
- Enterprise Schema Management: Formal schema definitions with validation
- Migration Framework: Version-controlled database changes with rollback capability
- Seed Data System: Consistent development and testing data
- Performance Optimization: Documented indexing and partitioning strategies
- Operational Tools: Database management and analysis utilities
- Start DevContainer: The database emulator starts automatically
- Seed Database: Run seed data scripts for development
- Validate Schema: Use schema validation tools
# Seed development database
cd db/seed-data/scripts
node seed-runner.js
# Validate schema
cd db/tools
node schema-validator.js- Review Schema: Check
db/schemas/containers/for current definitions - Create Migration: Add new migration script to
db/migrations/scripts/ - Execute Migration: Use migration framework for safe deployment
# Create new migration
cd db/migrations/scripts
cp template-migration.js 004-new-feature.js
# Execute migration
cd db/migrations/framework
node migration-runner.js --script 004-new-feature.js- CosmosDbService: Uses formal schema validation
- Data Models: TypeScript interfaces match JSON Schema definitions
- API Functions: Schema validation in data operations
- Terraform Modules: Container definitions and indexing policies
- Deployment Pipelines: Automated migration execution
- Environment Management: Schema consistency across environments
- DevContainer: Automated database setup and seeding
- Build Process: Schema validation in CI/CD
- Testing: Consistent seed data for all environments
- Schema Design: Entity relationships and design decisions
- Performance Optimization: Query optimization and indexing
- Migration Guide: Database change management procedures
- Seed Data Guide: Development data management
- Backup & Recovery: Operational procedures
- Troubleshooting: Common issues and solutions
This database schema management system demonstrates:
- Version Control: All schema changes tracked and versioned
- Risk Mitigation: Rollback capabilities and validation
- Documentation: Comprehensive schema and operational documentation
- Automation: Integrated with CI/CD and development workflows
- Performance: Optimized indexing and partitioning strategies
- Consistency: Identical schemas across all environments
For questions or issues with the database schema management system:
- Check the Troubleshooting Guide
- Review the Schema Documentation
- Consult the Migration Procedures
Note: This database schema management system is part of the PCPC enterprise architecture, demonstrating advanced database design and operational practices for portfolio and production use.