discourse/db/migrate/20260511044542_create_pageview_events.rb
Krzysztof Kotlarek 39e21d063c
DEV: Add browser pageview events (#39878)
This change adds a hidden, opt-in path that writes pageview rows
directly to a new `browser_pageview_events` table via
`Scheduler::Defer`, gated by `persist_browser_pageview_events`.

In addition, a daily cleanup job was added, gated by
`clean_up_browser_pageview_events` that prunes rows older than 3 months.
2026-05-12 11:27:27 +08:00

23 lines
797 B
Ruby
Vendored

# frozen_string_literal: true
class CreatePageviewEvents < ActiveRecord::Migration[8.0]
def change
return if table_exists?(:browser_pageview_events)
create_table :browser_pageview_events do |t|
t.string :url, null: false, limit: 2000
t.inet :ip_address, null: false
t.string :referrer, null: true, limit: 2000
t.string :user_agent, null: false, limit: 1000
t.string :session_id, null: false, limit: 32
t.integer :topic_id, null: true
t.integer :user_id, null: true
t.string :country_code, null: true, limit: 2
t.timestamp :created_at, null: false
end
add_index :browser_pageview_events, :created_at, using: :brin
add_index :browser_pageview_events, :user_id
add_index :browser_pageview_events, :topic_id
end
end