"""Creative Management Migrations

Database migrations for the creatives app.
Handles schema changes, data migrations, and database evolution.

Migration Categories:
- Initial Migration: Create initial database schema
- Schema Migrations: Add/modify fields, indexes, constraints
- Data Migrations: Migrate existing data, populate fields
- Relationship Migrations: Add/modify foreign keys, many-to-many
- Index Migrations: Add/remove database indexes
- Constraint Migrations: Add/remove database constraints

Typical Migration Files:
- 0001_initial.py: Initial schema creation
- 0002_add_creative_fields.py: Add new fields to Creative model
- 0003_creative_performance_indexes.py: Add performance indexes
- 0004_migrate_file_paths.py: Data migration for file paths
- 0005_add_compliance_fields.py: Add compliance tracking
- 0006_creative_variants.py: Add A/B testing support
- 0007_template_system.py: Add template management
- 0008_approval_workflow.py: Add approval workflow
- 0009_performance_tracking.py: Add performance metrics
- 0010_file_optimization.py: Add file optimization features

Features:
- Schema versioning and evolution
- Data migration and transformation
- Index optimization for performance
- Constraint management for data integrity
- Rollback support for safe deployments
- Custom migration operations
- Database-specific optimizations
- Migration dependencies and ordering

Usage:
    # Create new migration
    python manage.py makemigrations creatives
    
    # Apply migrations
    python manage.py migrate creatives
    
    # Show migration status
    python manage.py showmigrations creatives
    
    # Rollback migration
    python manage.py migrate creatives 0001
    
    # Create empty migration for data migration
    python manage.py makemigrations --empty creatives

Best Practices:
- Always backup database before migrations
- Test migrations on staging environment
- Use RunPython for complex data migrations
- Add reverse operations for rollbacks
- Use atomic transactions for data integrity
- Document migration purpose and changes
- Consider performance impact on large tables
- Use database-specific features when needed

Integrations:
- Django ORM for schema management
- Database engines (PostgreSQL, MySQL, SQLite)
- Custom migration operations
- Data validation and transformation
- File system operations for media files
- Cache invalidation during migrations
- Search index updates
- External service synchronization
"""