Blob of db/migrate/015_create_tickets.rb (raw blob data)

1 #
2 #
3 #
4 #
5 class CreateTickets < ActiveRecord::Migration
6
7 def self.up
8
9 create_table :milestones do |t|
10 t.string :name, :default => "", :null => false
11 t.string :description, :default => ""
12 t.column :status, :enum, :limit => [:proposed, :active, :complete], :default => :active
13 t.column :audience, :enum, :limit => [:public, :members_only], :default => :public
14 t.datetime :due_date
15 t.datetime :close_date
16 t.integer :progress #FIXME this is temporary (should be calculated on % of completed tickets)
17 t.timestamps
18 t.integer :creator_id, :references => nil
19 t.integer :project_id, :null => false
20 t.integer :repository_id, :references => nil
21 end
22 add_index :milestones, [:id, :audience]
23 add_index :milestones, [:project_id]
24
25 create_table :components do |t|
26 t.string :name, :null => false
27 t.integer :sort_order
28 t.integer :default_user_id, :references => nil
29 t.integer :project_id, :null => false
30 end
31 add_index :components, [:id]
32 add_index :components, [:project_id, :sort_order]
33
34 create_table :tickets do |t|
35 t.string :summary, :default => "", :null => false
36 t.text :detail
37 t.column :ttype, :enum, :limit => [:defect, :enhancement, :task], :default => :defect
38 t.column :status, :enum, :limit => [:proposed, :open, :closed, :deleted], :default => :proposed
39 t.column :impact, :enum, :limit => [:low, :high, :security], :default => :low
40 t.column :priority, :enum, :limit => [:none, :low, :high, :critical], :default => :none
41 t.column :audience, :enum, :limit => [:public, :members], :default => :public
42 t.string :cc, :default => ""
43 t.string :slug
44 t.datetime :open_date
45 t.datetime :close_date
46 t.integer :views, :default => 0
47 t.timestamps
48 #
49 t.integer :project_id, :null => false
50 t.integer :component_id
51 t.integer :milestone_id
52 t.integer :assignee_id, :references => nil, :default => 2 # Unassigned
53 t.integer :submitter_id, :references => nil, :default => 1 # Anonymous
54 end
55 add_index :tickets, [:id]
56 add_index :tickets, [:project_id]
57 add_index :tickets, [:milestone_id]
58 add_index :tickets, [:assignee_id]
59 add_index :tickets, [:submitter_id]
60
61 end
62
63 def self.down
64 drop_table :components
65 drop_table :milestones
66 drop_table :tickets
67 end
68
69 end
70
71
72
73
74