31 lines
1006 B
Elixir
31 lines
1006 B
Elixir
|
|
defmodule Berrypod.Repo.Migrations.CreateAnalyticsEvents do
|
||
|
|
use Ecto.Migration
|
||
|
|
|
||
|
|
def change do
|
||
|
|
create table(:analytics_events, primary_key: false) do
|
||
|
|
add :id, :binary_id, primary_key: true
|
||
|
|
add :name, :string, null: false
|
||
|
|
add :pathname, :string, null: false
|
||
|
|
add :visitor_hash, :binary, null: false
|
||
|
|
add :session_hash, :binary, null: false
|
||
|
|
add :referrer, :string
|
||
|
|
add :referrer_source, :string
|
||
|
|
add :utm_source, :string
|
||
|
|
add :utm_medium, :string
|
||
|
|
add :utm_campaign, :string
|
||
|
|
add :country_code, :string, size: 2
|
||
|
|
add :screen_size, :string
|
||
|
|
add :browser, :string
|
||
|
|
add :os, :string
|
||
|
|
add :revenue, :integer
|
||
|
|
|
||
|
|
timestamps(type: :utc_datetime, updated_at: false)
|
||
|
|
end
|
||
|
|
|
||
|
|
create index(:analytics_events, [:inserted_at])
|
||
|
|
create index(:analytics_events, [:name, :inserted_at])
|
||
|
|
create index(:analytics_events, [:session_hash, :inserted_at])
|
||
|
|
create index(:analytics_events, [:pathname, :inserted_at])
|
||
|
|
end
|
||
|
|
end
|