Class: CreateBanyanTables

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

Class Method Summary collapse

Class Method Details

.downObject



45
46
47
48
49
50
51
52
53
# File 'lib/generators/banyan/templates/migration.rb', line 45

def self.down
  drop_table :banyan_category_groups
  drop_table :banyan_categorizations
  drop_table :banyan_categories_category_groups
  drop_table :banyan_categories

  Banyan::Category.drop_translation_table!
  Banyan::CategoryGroup.drop_translation_table!
end

.upObject



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

def self.up
   create_table :banyan_categories do |t|
     t.string   :tag
     t.integer  :parent_id
     t.integer  :lft
     t.integer  :rgt
   end
   add_index :banyan_categories, :tag
   add_index :banyan_categories, :parent_id
   add_index :banyan_categories, :lft
   add_index :banyan_categories, :rgt

   create_table :banyan_categories_category_groups, :id => false do |t|
     t.integer :category_id
     t.integer :category_group_id
   end
   execute "ALTER TABLE banyan_categories_category_groups ADD PRIMARY KEY (category_id, category_group_id);"
   add_index :banyan_categories_category_groups, :category_group_id

   create_table :banyan_categorizations do |t|
     t.integer  :category_id
     t.references :categorizable, :polymorphic => true
   end
   add_index :banyan_categorizations, :category_id
   add_index :banyan_categorizations, [:categorizable_id, :categorizable_type], :name => 'index_banyan_categorizations_on_categorizable'

   create_table :banyan_category_groups do |t|
     t.string   :tag
     t.references :group_categorizable, :polymorphic => true
     t.integer  :parent_id
     t.integer  :lft
     t.integer  :rgt
   end
   add_index :banyan_category_groups, :tag
   add_index :banyan_category_groups, [:group_categorizable_id, :group_categorizable_type], :name => 'index_banyan_category_groups_on_group_categorizable'
   add_index :banyan_category_groups, :parent_id
   add_index :banyan_category_groups, :lft
   add_index :banyan_category_groups, :rgt

   Banyan::Category.create_translation_table! :name => :string
   Banyan::CategoryGroup.create_translation_table! :name => :string
end