umami/docker/postgres/init-scripts/01-init-extensions.sh
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

41 lines
1.3 KiB
Bash
Executable file

#!/bin/bash
# Initialize PostgreSQL extensions for Umami
# This script runs automatically when the container is first created
set -e
echo "=================================================="
echo "Initializing PostgreSQL 17 with Extensions"
echo "=================================================="
# Wait for PostgreSQL to be ready
until pg_isready -U "$POSTGRES_USER" -d "$POSTGRES_DB"; do
echo "Waiting for PostgreSQL to be ready..."
sleep 2
done
echo "PostgreSQL is ready. Installing extensions..."
# Connect to the database and install extensions
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
-- Install TimescaleDB extension
CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;
-- Install Apache AGE extension
CREATE EXTENSION IF NOT EXISTS age CASCADE;
-- Load AGE into search path
SET search_path = ag_catalog, "\$user", public;
-- Verify installations
SELECT extname, extversion FROM pg_extension WHERE extname IN ('timescaledb', 'age');
EOSQL
echo "=================================================="
echo "Extensions installed successfully!"
echo "- TimescaleDB: Installed"
echo "- Apache AGE: Installed"
echo "=================================================="
echo "Database is ready for Umami migrations."