iskandarsulaili
7c1db78050
feat: Add UserMapping constraints and schema improvements
...
## 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
```
2025-11-06 22:04:57 +08:00
iskandarsulaili
5cf1e0c16a
feat: Add user ID mapping migration for WordPress integration
...
Added Prisma migration to support user identification:
1. Session Table Enhancement
- Added user_id column (VARCHAR(36)) to session table
- Stores WordPress user ID for logged-in users
- Indexed for efficient lookups
2. User Mapping Table
- New table to track visitor_id to user_id relationships
- Maps anonymous visitors to authenticated users
- Tracks first_seen_at, last_seen_at, and session_count
- Unique constraint on (visitor_id, user_id) pair
3. Indexes
- idx_session_user_id - Fast user_id lookups
- idx_session_visitor_user - Composite index for visitor+user queries
- idx_user_mapping_visitor - Visitor ID lookups
- idx_user_mapping_user - User ID lookups
- idx_user_mapping_last_seen - Time-based queries
This migration enables unified user tracking across anonymous and authenticated sessions, supporting the WordPress plugin's user identification feature.
2025-11-06 19:53:33 +08:00
iskandarsulaili
5f496fdb79
feat: integrate First8 Marketing hyper-personalization system
...
Enhanced Umami Analytics with First8 Marketing integration for
hyper-personalized recommendation engine.
Database Enhancements:
- PostgreSQL 17 with Apache AGE 1.6.0 (graph database)
- TimescaleDB 2.23.0 (time-series optimization)
- Extended schema for WooCommerce event tracking
- Custom tables for recommendation engine integration
Features Added:
- Real-time ETL pipeline to recommendation engine
- Extended event tracking (WordPress + WooCommerce)
- Graph database for relationship mapping
- Time-series optimization for analytics queries
- Custom migrations for hyper-personalization
Documentation:
- Updated README with integration details
- Added system architecture documentation
- Documented data flow and components
- Preserved original Umami Software credits
Integration Components:
- First8 Marketing Track plugin (event tracking)
- Recommendation Engine (ML backend)
- First8 Marketing Recommendation Engine plugin (presentation)
Status: Production-ready
Version: Based on Umami latest + First8 Marketing enhancements
2025-11-05 19:17:57 +08:00
Francis Cao
f3125c2add
clean up funnel migration and report errors
2025-09-10 16:38:51 -07:00
Francis Cao
1825524e95
convert report type before data migratino
Node.js CI / build (postgresql, 18.18) (push) Waiting to run
2025-09-10 09:29:49 -07:00
Francis Cao
964651bad3
add data migration to convert funnel and goals reports to new structure
2025-09-10 09:21:27 -07:00
Francis Cao
32febf0fbb
add unique index to slug columns
2025-08-18 09:58:26 -07:00
Mike Cao
3c5c1e48e9
Refactored settings. Updated sidebar.
2025-08-15 22:16:28 -07:00
Mike Cao
88639dfe83
New schema for pixels and links.
2025-08-13 20:27:54 -07:00