mirror of
https://github.com/umami-software/umami.git
synced 2026-02-05 21:27:20 +01:00
## Database Schema Enhancements ### Migration 19 - Fixed - Removed invalid composite index on session(visitor_id, user_id) - visitor_id column doesn't exist in session table - Fixed migration to only create valid indexes ### Migration 20 - New Constraints (with rollback support) - Added websiteId foreign key to UserMapping table - Added foreign key constraint to Website table for referential integrity - Added composite index on UserMapping(websiteId, userId) for query performance - Added composite index on Session(websiteId, userId) for join optimization ### Schema Updates - Updated UserMapping model with websiteId field - Added foreign key relationship: UserMapping -> Website - Added userMappings relation to Website model - Added composite indexes for better query performance ## Files Changed ### Modified - prisma/schema.prisma - Added foreign keys and composite indexes - prisma/migrations/19_add_user_id_mapping/migration.sql - Fixed invalid index ### New - prisma/migrations/20_add_user_mapping_constraints/migration.sql - Forward migration - prisma/migrations/20_add_user_mapping_constraints/rollback.sql - Rollback script ## Benefits - ✅ Referential integrity enforced at database level - ✅ Optimized queries for Umami sync operations - ✅ Better join performance on Session table - ✅ Rollback capability for safe schema changes ## Breaking Changes - UserMapping table now requires websiteId field - Existing data will be migrated to use first available website_id ## Migration Notes Run the migration with: ```bash npx prisma migrate deploy ``` To rollback if needed: ```bash psql -d umami -f prisma/migrations/20_add_user_mapping_constraints/rollback.sql ``` |
||
|---|---|---|
| .. | ||
| 01_init | ||
| 02_report_schema_session_data | ||
| 03_metric_performance_index | ||
| 04_team_redesign | ||
| 05_add_visit_id | ||
| 06_session_data | ||
| 07_add_tag | ||
| 08_add_utm_clid | ||
| 09_update_hostname_region | ||
| 10_add_distinct_id | ||
| 11_add_segment | ||
| 12_update_report_parameter | ||
| 13_add_revenue | ||
| 14_add_link_and_pixel | ||
| 15_add_woocommerce_fields | ||
| 16_create_recommendation_tables | ||
| 17_setup_apache_age | ||
| 18_setup_timescaledb | ||
| 19_add_user_id_mapping | ||
| 20_add_user_mapping_constraints | ||
| migration_lock.toml | ||