2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
# File 'lib/generators/code_sunset/migration/templates/create_code_sunset_tables.rb', line 2
def change
create_table :code_sunset_features do |t|
t.string :key, null: false
t.string :owner
t.text :description
t.string :status
t.integer :sunset_after_days, null: false, default: 90
t.integer :remove_after_days_unused, null: false, default: 60
t.timestamps
end
add_index :code_sunset_features, :key, unique: true
add_index :code_sunset_features, :status
create_table :code_sunset_events do |t|
t.string :feature_key, null: false
t.datetime :occurred_at, null: false
t.bigint :user_id
t.bigint :org_id
t.string :hashed_user_id
t.string :hashed_org_id
t.string :request_id
t.string :source
t.string :request_path
t.string :controller
t.string :action
t.string :job_class
t.string :app_env, null: false
t.string :app_version
t.string :plan
t.boolean :internal_org
t.boolean :paid_org
t.jsonb :metadata, null: false, default: {}
t.timestamps
end
add_index :code_sunset_events, :feature_key
add_index :code_sunset_events, :occurred_at
add_index :code_sunset_events, [:feature_key, :occurred_at]
add_index :code_sunset_events, :user_id
add_index :code_sunset_events, :org_id
add_index :code_sunset_events, :hashed_user_id
add_index :code_sunset_events, :hashed_org_id
add_index :code_sunset_events, :app_env
add_index :code_sunset_events, :plan
add_index :code_sunset_events, :metadata, using: :gin
create_table :code_sunset_daily_rollups do |t|
t.string :feature_key, null: false
t.string :app_env
t.date :day, null: false
t.integer :hits_count, null: false, default: 0
t.integer :unique_users_count, null: false, default: 0
t.integer :unique_orgs_count, null: false, default: 0
t.datetime :last_seen_at
t.timestamps
end
add_index :code_sunset_daily_rollups, [:feature_key, :app_env, :day], unique: true, name: "index_code_sunset_rollups_on_feature_env_day"
add_index :code_sunset_daily_rollups, :day
create_table :code_sunset_alert_deliveries do |t|
t.string :feature_key, null: false
t.string :status, null: false
t.string :alert_kind, null: false
t.datetime :delivered_at, null: false
t.jsonb :payload, null: false, default: {}
t.timestamps
end
add_index :code_sunset_alert_deliveries, [:feature_key, :status, :alert_kind, :delivered_at], name: "index_code_sunset_alerts_on_feature_status_kind_time"
add_index :code_sunset_alert_deliveries, :delivered_at
end
|