refactor(signals): Updated table insertion for frontend signals table (#1304)
* Updated frontend signal table insertion (added column session_id) * Updated sql creation table query * feat(DB): changed DB structure for frontend_signals --------- Co-authored-by: Taha Yassine Kraiem <tahayk2@gmail.com>
This commit is contained in:
parent
7c23c7d24d
commit
9de021ead6
3 changed files with 22 additions and 13 deletions
|
|
@ -28,9 +28,13 @@ class EventQueue():
|
|||
for _key, _val in element.dict().items():
|
||||
if _key == 'data':
|
||||
params[f'{_key}_{i}'] = json.dumps(_val)
|
||||
if 'sessionId' in _val.keys():
|
||||
params[f'session_id_{i}'] = int(_val['sessionId'])
|
||||
else:
|
||||
params[f'session_id_{i}'] = None
|
||||
else:
|
||||
params[f'{_key}_{i}'] = _val
|
||||
events.append(f"(%(project_id_{i})s, %(user_id_{i})s, %(timestamp_{i})s, %(action_{i})s, %(source_{i})s, %(category_{i})s, %(data_{i})s::jsonb)")
|
||||
events.append(f"(%(project_id_{i})s, %(user_id_{i})s, %(timestamp_{i})s, %(action_{i})s, %(source_{i})s, %(category_{i})s, %(data_{i})s::jsonb, %(session_id_{i})s)")
|
||||
i += 1
|
||||
if i == 0:
|
||||
return 0
|
||||
|
|
@ -38,7 +42,7 @@ class EventQueue():
|
|||
print(events)
|
||||
return 1
|
||||
conn.execute(
|
||||
conn.mogrify(f"""INSERT INTO public.frontend_signals (project_id, user_id, timestamp, action, source, category, data)
|
||||
conn.mogrify(f"""INSERT INTO public.frontend_signals (project_id, user_id, timestamp, action, source, category, data, session_id)
|
||||
VALUES {' , '.join(events)}""", params)
|
||||
)
|
||||
return 1
|
||||
|
|
|
|||
|
|
@ -54,6 +54,9 @@ UPDATE public.roles
|
|||
SET permissions = (SELECT array_agg(distinct e) FROM unnest(permissions || '{FEATURE_FLAGS}') AS e)
|
||||
where not permissions @> '{FEATURE_FLAGS}';
|
||||
|
||||
ALTER TABLE IF EXISTS public.frontend_signals
|
||||
ADD COLUMN IF NOT EXISTS session_id integer NULL REFERENCES sessions (session_id) ON DELETE SET NULL;
|
||||
|
||||
ALTER TABLE IF EXISTS public.sessions
|
||||
ADD COLUMN IF NOT EXISTS user_city text,
|
||||
ADD COLUMN IF NOT EXISTS user_state text;
|
||||
|
|
@ -61,4 +64,4 @@ ALTER TABLE IF EXISTS public.sessions
|
|||
COMMIT;
|
||||
|
||||
CREATE INDEX CONCURRENTLY IF NOT EXISTS sessions_project_id_user_city_idx ON sessions (project_id, user_city);
|
||||
CREATE INDEX CONCURRENTLY IF NOT EXISTS sessions_project_id_user_state_idx ON sessions (project_id, user_state);
|
||||
CREATE INDEX CONCURRENTLY IF NOT EXISTS sessions_project_id_user_state_idx ON sessions (project_id, user_state);
|
||||
|
|
@ -132,7 +132,8 @@ $$
|
|||
('webhooks'),
|
||||
('sessions_notes'),
|
||||
('assist_records'),
|
||||
('projects_stats'))
|
||||
('projects_stats'),
|
||||
('frontend_signals'))
|
||||
select bool_and(exists(select *
|
||||
from information_schema.tables t
|
||||
where table_schema = 'public'
|
||||
|
|
@ -637,14 +638,15 @@ $$
|
|||
|
||||
CREATE TABLE IF NOT EXISTS frontend_signals
|
||||
(
|
||||
project_id integer NOT NULL REFERENCES projects (project_id) ON DELETE CASCADE,
|
||||
user_id integer NOT NULL REFERENCES users (user_id) ON DELETE CASCADE,
|
||||
timestamp bigint NOT NULL,
|
||||
action text NOT NULL,
|
||||
source text NOT NULL,
|
||||
category text NOT NULL,
|
||||
data jsonb,
|
||||
created_at timestamp DEFAULT timezone('utc'::text, now()) NOT NULL
|
||||
project_id integer NOT NULL REFERENCES projects (project_id) ON DELETE CASCADE,
|
||||
user_id integer NOT NULL REFERENCES users (user_id) ON DELETE CASCADE,
|
||||
timestamp bigint NOT NULL,
|
||||
action text NOT NULL,
|
||||
source text NOT NULL,
|
||||
category text NOT NULL,
|
||||
data jsonb NULL,
|
||||
session_id integer NULL REFERENCES sessions (session_id) ON DELETE SET NULL,
|
||||
created_at timestamp NOT NULL DEFAULT timezone('utc'::text, now())
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS frontend_signals_user_id_idx ON frontend_signals (user_id);
|
||||
|
||||
|
|
@ -1287,4 +1289,4 @@ $$
|
|||
$$
|
||||
LANGUAGE plpgsql;
|
||||
|
||||
COMMIT;
|
||||
COMMIT;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue