Class: SetupDetour

Inherits:
ActiveRecord::Migration
  • Object
show all
Defined in:
lib/generators/templates/migration.rb

Instance Method Summary collapse

Instance Method Details

#changeObject



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
# File 'lib/generators/templates/migration.rb', line 2

def change
  create_table :detour_features do |t|
    t.string :name
    t.text    :flag_in_counts, default: "{}"
    t.text    :opt_out_counts, default: "{}"
    t.timestamps
  end

  add_index :detour_features, :name, unique: true

  create_table :detour_flags do |t|
    t.string  :type
    t.integer :feature_id
    t.integer :flaggable_id
    t.string  :flaggable_type
    t.integer :group_id
    t.string  :group_name
    t.integer :percentage
    t.timestamps
  end

  add_index :detour_flags, :type
  add_index :detour_flags, :feature_id
  add_index :detour_flags, :group_id
  add_index :detour_flags,
    [:type, :feature_id, :group_id]
  add_index :detour_flags,
    [:type, :feature_id, :flaggable_type, :flaggable_id],
    name: "flag_type_feature_flaggable_type_id"
  add_index :detour_flags,
    [:type, :feature_id, :flaggable_type],
  name: "flag_type_feature_flaggable_type"

  create_table :detour_groups do |t|
    t.string :name
    t.string :flaggable_type
    t.timestamps
  end

  create_table :detour_memberships do |t|
    t.integer  :group_id
    t.string   :member_type
    t.integer  :member_id
    t.timestamps
  end

  add_index :detour_memberships, [:group_id, :member_type, :member_id],
    name: :detour_memberships_membership_index,
    unique: true
end