-- account DELETE FROM "user" WHERE username = 'admin'; INSERT INTO "user" (user_id, username, password, role, created_at, updated_at, deleted_at) SELECT account_uuid, username, password, CASE WHEN is_admin = true THEN 'admin' ELSE 'user' END, created_at, updated_at, NULL FROM v1_account WHERE NOT EXISTS (SELECT 1 FROM "user"); -- website INSERT INTO website (website_id, name, domain, share_id, rev_id, user_id, team_id, created_at) SELECT website_uuid, name, domain, share_id, 0 rev_id, a.account_uuid, NULL team_id, a.created_at FROM v1_website w JOIN v1_account a ON a.user_id = w.user_id WHERE NOT EXISTS (SELECT 1 FROM website); -- session INSERT INTO session (session_id, website_id, hostname, browser, os, device, screen, language, country) SELECT session_uuid, w.website_uuid, hostname, browser, os, device, screen, language, country FROM v1_session s JOIN v1_website w ON w.website_id = s.website_id WHERE NOT EXISTS (SELECT 1 FROM session); -- pageview INSERT INTO website_event (event_id, website_id, session_id, created_at, url, referrer, event_type) SELECT gen_random_uuid() event_id, w.website_uuid, s.session_uuid, p.created_at, p.url, p.referrer, 1 event_type FROM v1_pageview p JOIN v1_session s ON s.session_id = p.session_id JOIN v1_website w ON w.website_id = s.website_id WHERE NOT EXISTS (SELECT 1 FROM website_event WHERE event_type = 1); -- event / event_data INSERT INTO website_event (event_id, website_id, session_id, created_at, url, event_type, event_name, event_data) SELECT e.event_uuid, w.website_uuid, s.session_uuid, e.created_at, e.url, 2 event_type, e.event_name, ed.event_data FROM v1_event e JOIN v1_session s ON s.session_id = e.session_id JOIN v1_website w ON w.website_id = s.website_id LEFT JOIN v1_event_data ed ON ed.event_id = e.event_id WHERE NOT EXISTS (SELECT 1 FROM website_event WHERE event_type = 2);