43 lines
1.4 KiB
SQL
43 lines
1.4 KiB
SQL
CREATE TABLE IF NOT EXISTS analytics_traffic_daily (
|
|
day DATE NOT NULL,
|
|
source_group TEXT NOT NULL,
|
|
source_name TEXT NOT NULL,
|
|
device_type TEXT NOT NULL,
|
|
os_name TEXT NOT NULL,
|
|
keyword TEXT NOT NULL DEFAULT '',
|
|
page_views INTEGER NOT NULL DEFAULT 0,
|
|
visitors INTEGER NOT NULL DEFAULT 0,
|
|
PRIMARY KEY (day, source_group, source_name, device_type, os_name, keyword)
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS analytics_traffic_daily_day_idx
|
|
ON analytics_traffic_daily (day DESC);
|
|
|
|
CREATE INDEX IF NOT EXISTS analytics_traffic_daily_source_idx
|
|
ON analytics_traffic_daily (source_group, source_name);
|
|
|
|
ALTER TABLE analytics_daily_visitors
|
|
ADD COLUMN IF NOT EXISTS source_group TEXT NOT NULL DEFAULT '',
|
|
ADD COLUMN IF NOT EXISTS source_name TEXT NOT NULL DEFAULT '',
|
|
ADD COLUMN IF NOT EXISTS device_type TEXT NOT NULL DEFAULT '',
|
|
ADD COLUMN IF NOT EXISTS os_name TEXT NOT NULL DEFAULT '',
|
|
ADD COLUMN IF NOT EXISTS keyword TEXT NOT NULL DEFAULT '';
|
|
|
|
ALTER TABLE analytics_daily_visitors
|
|
DROP CONSTRAINT IF EXISTS analytics_daily_visitors_scope_check;
|
|
|
|
ALTER TABLE analytics_daily_visitors
|
|
ADD CONSTRAINT analytics_daily_visitors_scope_check CHECK (scope IN ('site', 'post', 'page', 'traffic'));
|
|
|
|
CREATE UNIQUE INDEX IF NOT EXISTS analytics_daily_visitors_traffic_uidx
|
|
ON analytics_daily_visitors (
|
|
day,
|
|
visitor_hash,
|
|
source_group,
|
|
source_name,
|
|
device_type,
|
|
os_name,
|
|
keyword
|
|
)
|
|
WHERE scope = 'traffic';
|