Revision 912:5e80956cc792 db/migrate

View differences:

db/migrate/001_setup.rb
5 5
# modify it under the terms of the GNU General Public License
6 6
# as published by the Free Software Foundation; either version 2
7 7
# of the License, or (at your option) any later version.
8
# 
8
#
9 9
# This program is distributed in the hope that it will be useful,
10 10
# but WITHOUT ANY WARRANTY; without even the implied warranty of
11 11
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 12
# GNU General Public License for more details.
13
# 
13
#
14 14
# You should have received a copy of the GNU General Public License
15 15
# along with this program; if not, write to the Free Software
16 16
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
17 17

  
18 18
class Setup < ActiveRecord::Migration
19
  
19

  
20 20
  class User < ActiveRecord::Base; end
21 21
  # model removed
22 22
  class Permission < ActiveRecord::Base; end
23
  
24
  def self.up

25
    create_table "attachments", :force => true do |t|

26
      t.column "container_id", :integer, :default => 0, :null => false

27
      t.column "container_type", :string, :limit => 30, :default => "", :null => false

28
      t.column "filename", :string, :default => "", :null => false

29
      t.column "disk_filename", :string, :default => "", :null => false

30
      t.column "filesize", :integer, :default => 0, :null => false

31
      t.column "content_type", :string, :limit => 60, :default => ""

32
      t.column "digest", :string, :limit => 40, :default => "", :null => false

33
      t.column "downloads", :integer, :default => 0, :null => false

34
      t.column "author_id", :integer, :default => 0, :null => false

35
      t.column "created_on", :timestamp

36
    end

23

  
24
  def self.up
25
    create_table "attachments", :force => true do |t|
26
      t.column "container_id", :integer, :default => 0, :null => false
27
      t.column "container_type", :string, :limit => 30, :default => "", :null => false
28
      t.column "filename", :string, :default => "", :null => false
29
      t.column "disk_filename", :string, :default => "", :null => false
30
      t.column "filesize", :integer, :default => 0, :null => false
31
      t.column "content_type", :string, :limit => 60, :default => ""
32
      t.column "digest", :string, :limit => 40, :default => "", :null => false
33
      t.column "downloads", :integer, :default => 0, :null => false
34
      t.column "author_id", :integer, :default => 0, :null => false
35
      t.column "created_on", :timestamp
36
    end
37 37

  
38 38
    create_table "auth_sources", :force => true do |t|
39 39
      t.column "type", :string, :limit => 30, :default => "", :null => false
......
49 49
      t.column "attr_mail", :string, :limit => 30
50 50
      t.column "onthefly_register", :boolean, :default => false, :null => false
51 51
    end
52
    
52

  
53 53
    create_table "custom_fields", :force => true do |t|
54
      t.column "type", :string, :limit => 30, :default => "", :null => false

55
      t.column "name", :string, :limit => 30, :default => "", :null => false

56
      t.column "field_format", :string, :limit => 30, :default => "", :null => false

57
      t.column "possible_values", :text

58
      t.column "regexp", :string, :default => ""

59
      t.column "min_length", :integer, :default => 0, :null => false

60
      t.column "max_length", :integer, :default => 0, :null => false

54
      t.column "type", :string, :limit => 30, :default => "", :null => false
55
      t.column "name", :string, :limit => 30, :default => "", :null => false
56
      t.column "field_format", :string, :limit => 30, :default => "", :null => false
57
      t.column "possible_values", :text
58
      t.column "regexp", :string, :default => ""
59
      t.column "min_length", :integer, :default => 0, :null => false
60
      t.column "max_length", :integer, :default => 0, :null => false
61 61
      t.column "is_required", :boolean, :default => false, :null => false
62 62
      t.column "is_for_all", :boolean, :default => false, :null => false
63
    end

64
  
65
    create_table "custom_fields_projects", :id => false, :force => true do |t|

66
      t.column "custom_field_id", :integer, :default => 0, :null => false

67
      t.column "project_id", :integer, :default => 0, :null => false

68
    end

63
    end
64

  
65
    create_table "custom_fields_projects", :id => false, :force => true do |t|
66
      t.column "custom_field_id", :integer, :default => 0, :null => false
67
      t.column "project_id", :integer, :default => 0, :null => false
68
    end
69 69

  
70 70
    create_table "custom_fields_trackers", :id => false, :force => true do |t|
71 71
      t.column "custom_field_id", :integer, :default => 0, :null => false
72 72
      t.column "tracker_id", :integer, :default => 0, :null => false
73 73
    end
74

  
75
    create_table "custom_values", :force => true do |t|

74

  
75
    create_table "custom_values", :force => true do |t|
76 76
      t.column "customized_type", :string, :limit => 30, :default => "", :null => false
77 77
      t.column "customized_id", :integer, :default => 0, :null => false
78
      t.column "custom_field_id", :integer, :default => 0, :null => false
79
      t.column "value", :text
80
    end
81
  
82
    create_table "documents", :force => true do |t|
83
      t.column "project_id", :integer, :default => 0, :null => false
84
      t.column "category_id", :integer, :default => 0, :null => false
85
      t.column "title", :string, :limit => 60, :default => "", :null => false
86
      t.column "description", :text
87
      t.column "created_on", :timestamp
78
      t.column "custom_field_id", :integer, :default => 0, :null => false
79
      t.column "value", :text
88 80
    end
89
    
90
    add_index "documents", ["project_id"], :name => "documents_project_id"
91
  
92
    create_table "enumerations", :force => true do |t|
93
      t.column "opt", :string, :limit => 4, :default => "", :null => false
94
      t.column "name", :string, :limit => 30, :default => "", :null => false
95
    end
96
  
97
    create_table "issue_categories", :force => true do |t|
98
      t.column "project_id", :integer, :default => 0, :null => false
99
      t.column "name", :string, :limit => 30, :default => "", :null => false
81

  
82
    create_table "documents", :force => true do |t|
83
      t.column "project_id", :integer, :default => 0, :null => false
84
      t.column "category_id", :integer, :default => 0, :null => false
85
      t.column "title", :string, :limit => 60, :default => "", :null => false
86
      t.column "description", :text
87
      t.column "created_on", :timestamp
100 88
    end
101
    
102
    add_index "issue_categories", ["project_id"], :name => "issue_categories_project_id"
103
  
104
    create_table "issue_histories", :force => true do |t|
105
      t.column "issue_id", :integer, :default => 0, :null => false
106
      t.column "status_id", :integer, :default => 0, :null => false
107
      t.column "author_id", :integer, :default => 0, :null => false
108
      t.column "notes", :text
109
      t.column "created_on", :timestamp
110
    end
111
  
112
    add_index "issue_histories", ["issue_id"], :name => "issue_histories_issue_id"
113

  
114
    create_table "issue_statuses", :force => true do |t|
115
      t.column "name", :string, :limit => 30, :default => "", :null => false
116
      t.column "is_closed", :boolean, :default => false, :null => false
117
      t.column "is_default", :boolean, :default => false, :null => false
118
      t.column "html_color", :string, :limit => 6, :default => "FFFFFF", :null => false
119
    end
120
  
121
    create_table "issues", :force => true do |t|
122
      t.column "tracker_id", :integer, :default => 0, :null => false
123
      t.column "project_id", :integer, :default => 0, :null => false
124
      t.column "subject", :string, :default => "", :null => false
89

  
90
    add_index "documents", ["project_id"], :name => "documents_project_id"
91

  
92
    create_table "enumerations", :force => true do |t|
93
      t.column "opt", :string, :limit => 4, :default => "", :null => false
94
      t.column "name", :string, :limit => 30, :default => "", :null => false
95
    end
96

  
97
    create_table "issue_categories", :force => true do |t|
98
      t.column "project_id", :integer, :default => 0, :null => false
99
      t.column "name", :string, :limit => 30, :default => "", :null => false
100
    end
101

  
102
    add_index "issue_categories", ["project_id"], :name => "issue_categories_project_id"
103

  
104
    create_table "issue_histories", :force => true do |t|
105
      t.column "issue_id", :integer, :default => 0, :null => false
106
      t.column "status_id", :integer, :default => 0, :null => false
107
      t.column "author_id", :integer, :default => 0, :null => false
108
      t.column "notes", :text
109
      t.column "created_on", :timestamp
110
    end
111

  
112
    add_index "issue_histories", ["issue_id"], :name => "issue_histories_issue_id"
113

  
114
    create_table "issue_statuses", :force => true do |t|
115
      t.column "name", :string, :limit => 30, :default => "", :null => false
116
      t.column "is_closed", :boolean, :default => false, :null => false
117
      t.column "is_default", :boolean, :default => false, :null => false
118
      t.column "html_color", :string, :limit => 6, :default => "FFFFFF", :null => false
119
    end
120

  
121
    create_table "issues", :force => true do |t|
122
      t.column "tracker_id", :integer, :default => 0, :null => false
123
      t.column "project_id", :integer, :default => 0, :null => false
124
      t.column "subject", :string, :default => "", :null => false
125 125
      t.column "description", :text
126
      t.column "due_date", :date

127
      t.column "category_id", :integer

128
      t.column "status_id", :integer, :default => 0, :null => false

129
      t.column "assigned_to_id", :integer

130
      t.column "priority_id", :integer, :default => 0, :null => false

131
      t.column "fixed_version_id", :integer

126
      t.column "due_date", :date
127
      t.column "category_id", :integer
128
      t.column "status_id", :integer, :default => 0, :null => false
129
      t.column "assigned_to_id", :integer
130
      t.column "priority_id", :integer, :default => 0, :null => false
131
      t.column "fixed_version_id", :integer
132 132
      t.column "author_id", :integer, :default => 0, :null => false
133
      t.column "lock_version", :integer, :default => 0, :null => false
134
      t.column "created_on", :timestamp
135
      t.column "updated_on", :timestamp
136
    end
137
  
138
    add_index "issues", ["project_id"], :name => "issues_project_id"
139
  
140
    create_table "members", :force => true do |t|
141
      t.column "user_id", :integer, :default => 0, :null => false
142
      t.column "project_id", :integer, :default => 0, :null => false
143
      t.column "role_id", :integer, :default => 0, :null => false
144
      t.column "created_on", :timestamp
145
    end
146
  
147
    create_table "news", :force => true do |t|
148
      t.column "project_id", :integer
149
      t.column "title", :string, :limit => 60, :default => "", :null => false
150
      t.column "summary", :string, :limit => 255, :default => ""
151
      t.column "description", :text
152
      t.column "author_id", :integer, :default => 0, :null => false
153
      t.column "created_on", :timestamp
133
      t.column "lock_version", :integer, :default => 0, :null => false
134
      t.column "created_on", :timestamp
135
      t.column "updated_on", :timestamp
154 136
    end
155
    
156
    add_index "news", ["project_id"], :name => "news_project_id"
157
  
158
    create_table "permissions", :force => true do |t|
159
      t.column "controller", :string, :limit => 30, :default => "", :null => false
160
      t.column "action", :string, :limit => 30, :default => "", :null => false
161
      t.column "description", :string, :limit => 60, :default => "", :null => false
162
      t.column "is_public", :boolean, :default => false, :null => false
163
      t.column "sort", :integer, :default => 0, :null => false
164
      t.column "mail_option", :boolean, :default => false, :null => false
165
      t.column "mail_enabled", :boolean, :default => false, :null => false
166
    end
167
  
168
    create_table "permissions_roles", :id => false, :force => true do |t|
169
      t.column "permission_id", :integer, :default => 0, :null => false
170
      t.column "role_id", :integer, :default => 0, :null => false
171
    end
172
  
173
    add_index "permissions_roles", ["role_id"], :name => "permissions_roles_role_id"
174
  
175
    create_table "projects", :force => true do |t|
176
      t.column "name", :string, :limit => 30, :default => "", :null => false
177
      t.column "description", :string, :default => "", :null => false
178
      t.column "homepage", :string, :limit => 60, :default => ""
137

  
138
    add_index "issues", ["project_id"], :name => "issues_project_id"
139

  
140
    create_table "members", :force => true do |t|
141
      t.column "user_id", :integer, :default => 0, :null => false
142
      t.column "project_id", :integer, :default => 0, :null => false
143
      t.column "role_id", :integer, :default => 0, :null => false
144
      t.column "created_on", :timestamp
145
    end
146

  
147
    create_table "news", :force => true do |t|
148
      t.column "project_id", :integer
149
      t.column "title", :string, :limit => 60, :default => "", :null => false
150
      t.column "summary", :string, :limit => 255, :default => ""
151
      t.column "description", :text
152
      t.column "author_id", :integer, :default => 0, :null => false
153
      t.column "created_on", :timestamp
154
    end
155

  
156
    add_index "news", ["project_id"], :name => "news_project_id"
157

  
158
    create_table "permissions", :force => true do |t|
159
      t.column "controller", :string, :limit => 30, :default => "", :null => false
160
      t.column "action", :string, :limit => 30, :default => "", :null => false
161
      t.column "description", :string, :limit => 60, :default => "", :null => false
162
      t.column "is_public", :boolean, :default => false, :null => false
163
      t.column "sort", :integer, :default => 0, :null => false
164
      t.column "mail_option", :boolean, :default => false, :null => false
165
      t.column "mail_enabled", :boolean, :default => false, :null => false
166
    end
167

  
168
    create_table "permissions_roles", :id => false, :force => true do |t|
169
      t.column "permission_id", :integer, :default => 0, :null => false
170
      t.column "role_id", :integer, :default => 0, :null => false
171
    end
172

  
173
    add_index "permissions_roles", ["role_id"], :name => "permissions_roles_role_id"
174

  
175
    create_table "projects", :force => true do |t|
176
      t.column "name", :string, :limit => 30, :default => "", :null => false
177
      t.column "description", :string, :default => "", :null => false
178
      t.column "homepage", :string, :limit => 60, :default => ""
179 179
      t.column "is_public", :boolean, :default => true, :null => false
180 180
      t.column "parent_id", :integer
181
      t.column "projects_count", :integer, :default => 0

182
      t.column "created_on", :timestamp

183
      t.column "updated_on", :timestamp

184
    end

185
  
186
    create_table "roles", :force => true do |t|

187
      t.column "name", :string, :limit => 30, :default => "", :null => false

188
    end

181
      t.column "projects_count", :integer, :default => 0
182
      t.column "created_on", :timestamp
183
      t.column "updated_on", :timestamp
184
    end
185

  
186
    create_table "roles", :force => true do |t|
187
      t.column "name", :string, :limit => 30, :default => "", :null => false
188
    end
189 189

  
190 190
    create_table "tokens", :force => true do |t|
191 191
      t.column "user_id", :integer, :default => 0, :null => false
......
193 193
      t.column "value", :string, :limit => 40, :default => "", :null => false
194 194
      t.column "created_on", :datetime, :null => false
195 195
    end
196
  
197
    create_table "trackers", :force => true do |t|

198
      t.column "name", :string, :limit => 30, :default => "", :null => false

199
      t.column "is_in_chlog", :boolean, :default => false, :null => false

200
    end

201
  
202
    create_table "users", :force => true do |t|

203
      t.column "login", :string, :limit => 30, :default => "", :null => false

204
      t.column "hashed_password", :string, :limit => 40, :default => "", :null => false

205
      t.column "firstname", :string, :limit => 30, :default => "", :null => false

206
      t.column "lastname", :string, :limit => 30, :default => "", :null => false

207
      t.column "mail", :string, :limit => 60, :default => "", :null => false

208
      t.column "mail_notification", :boolean, :default => true, :null => false

209
      t.column "admin", :boolean, :default => false, :null => false

210
      t.column "status", :integer, :default => 1, :null => false

211
      t.column "last_login_on", :datetime

196

  
197
    create_table "trackers", :force => true do |t|
198
      t.column "name", :string, :limit => 30, :default => "", :null => false
199
      t.column "is_in_chlog", :boolean, :default => false, :null => false
200
    end
201

  
202
    create_table "users", :force => true do |t|
203
      t.column "login", :string, :limit => 30, :default => "", :null => false
204
      t.column "hashed_password", :string, :limit => 40, :default => "", :null => false
205
      t.column "firstname", :string, :limit => 30, :default => "", :null => false
206
      t.column "lastname", :string, :limit => 30, :default => "", :null => false
207
      t.column "mail", :string, :limit => 60, :default => "", :null => false
208
      t.column "mail_notification", :boolean, :default => true, :null => false
209
      t.column "admin", :boolean, :default => false, :null => false
210
      t.column "status", :integer, :default => 1, :null => false
211
      t.column "last_login_on", :datetime
212 212
      t.column "language", :string, :limit => 2, :default => ""
213
      t.column "auth_source_id", :integer
214
      t.column "created_on", :timestamp
215
      t.column "updated_on", :timestamp
216
    end
217
  
218
    create_table "versions", :force => true do |t|
219
      t.column "project_id", :integer, :default => 0, :null => false
220
      t.column "name", :string, :limit => 30, :default => "", :null => false
221
      t.column "description", :string, :default => ""
222
      t.column "effective_date", :date
223
      t.column "created_on", :timestamp
224
      t.column "updated_on", :timestamp
213
      t.column "auth_source_id", :integer
214
      t.column "created_on", :timestamp
215
      t.column "updated_on", :timestamp
225 216
    end
226
    
227
    add_index "versions", ["project_id"], :name => "versions_project_id"
228
  
229
    create_table "workflows", :force => true do |t|
230
      t.column "tracker_id", :integer, :default => 0, :null => false
231
      t.column "old_status_id", :integer, :default => 0, :null => false
232
      t.column "new_status_id", :integer, :default => 0, :null => false
233
      t.column "role_id", :integer, :default => 0, :null => false
234
    end
235
  
236
    # project
237
    Permission.create :controller => "projects", :action => "show", :description => "label_overview", :sort => 100, :is_public => true
238
    Permission.create :controller => "projects", :action => "changelog", :description => "label_change_log", :sort => 105, :is_public => true
239
    Permission.create :controller => "reports", :action => "issue_report", :description => "label_report_plural", :sort => 110, :is_public => true
240
    Permission.create :controller => "projects", :action => "settings", :description => "label_settings", :sort => 150
241
    Permission.create :controller => "projects", :action => "edit", :description => "button_edit", :sort => 151
242
    # members
243
    Permission.create :controller => "projects", :action => "list_members", :description => "button_list", :sort => 200, :is_public => true
244
    Permission.create :controller => "projects", :action => "add_member", :description => "button_add", :sort => 220
245
    Permission.create :controller => "members", :action => "edit", :description => "button_edit", :sort => 221
246
    Permission.create :controller => "members", :action => "destroy", :description => "button_delete", :sort => 222
247
    # versions
248
    Permission.create :controller => "projects", :action => "add_version", :description => "button_add", :sort => 320
249
    Permission.create :controller => "versions", :action => "edit", :description => "button_edit", :sort => 321
250
    Permission.create :controller => "versions", :action => "destroy", :description => "button_delete", :sort => 322
251
    # issue categories
252
    Permission.create :controller => "projects", :action => "add_issue_category", :description => "button_add", :sort => 420
253
    Permission.create :controller => "issue_categories", :action => "edit", :description => "button_edit", :sort => 421
254
    Permission.create :controller => "issue_categories", :action => "destroy", :description => "button_delete", :sort => 422
255
    # issues
256
    Permission.create :controller => "projects", :action => "list_issues", :description => "button_list", :sort => 1000, :is_public => true
217

  
218
    create_table "versions", :force => true do |t|
219
      t.column "project_id", :integer, :default => 0, :null => false
220
      t.column "name", :string, :limit => 30, :default => "", :null => false
221
      t.column "description", :string, :default => ""
222
      t.column "effective_date", :date
223
      t.column "created_on", :timestamp
224
      t.column "updated_on", :timestamp
225
    end
226

  
227
    add_index "versions", ["project_id"], :name => "versions_project_id"
228

  
229
    create_table "workflows", :force => true do |t|
230
      t.column "tracker_id", :integer, :default => 0, :null => false
231
      t.column "old_status_id", :integer, :default => 0, :null => false
232
      t.column "new_status_id", :integer, :default => 0, :null => false
233
      t.column "role_id", :integer, :default => 0, :null => false
234
    end
235

  
236
    # project
237
    Permission.create :controller => "projects", :action => "show", :description => "label_overview", :sort => 100, :is_public => true
238
    Permission.create :controller => "projects", :action => "changelog", :description => "label_change_log", :sort => 105, :is_public => true
239
    Permission.create :controller => "reports", :action => "issue_report", :description => "label_report_plural", :sort => 110, :is_public => true
240
    Permission.create :controller => "projects", :action => "settings", :description => "label_settings", :sort => 150
241
    Permission.create :controller => "projects", :action => "edit", :description => "button_edit", :sort => 151
242
    # members
243
    Permission.create :controller => "projects", :action => "list_members", :description => "button_list", :sort => 200, :is_public => true
244
    Permission.create :controller => "projects", :action => "add_member", :description => "button_add", :sort => 220
245
    Permission.create :controller => "members", :action => "edit", :description => "button_edit", :sort => 221
246
    Permission.create :controller => "members", :action => "destroy", :description => "button_delete", :sort => 222
247
    # versions
248
    Permission.create :controller => "projects", :action => "add_version", :description => "button_add", :sort => 320
249
    Permission.create :controller => "versions", :action => "edit", :description => "button_edit", :sort => 321
250
    Permission.create :controller => "versions", :action => "destroy", :description => "button_delete", :sort => 322
251
    # issue categories
252
    Permission.create :controller => "projects", :action => "add_issue_category", :description => "button_add", :sort => 420
253
    Permission.create :controller => "issue_categories", :action => "edit", :description => "button_edit", :sort => 421
254
    Permission.create :controller => "issue_categories", :action => "destroy", :description => "button_delete", :sort => 422
255
    # issues
256
    Permission.create :controller => "projects", :action => "list_issues", :description => "button_list", :sort => 1000, :is_public => true
257 257
    Permission.create :controller => "projects", :action => "export_issues_csv", :description => "label_export_csv", :sort => 1001, :is_public => true
258
    Permission.create :controller => "issues", :action => "show", :description => "button_view", :sort => 1005, :is_public => true

259
    Permission.create :controller => "issues", :action => "download", :description => "button_download", :sort => 1010, :is_public => true

260
    Permission.create :controller => "projects", :action => "add_issue", :description => "button_add", :sort => 1050, :mail_option => 1, :mail_enabled => 1

261
    Permission.create :controller => "issues", :action => "edit", :description => "button_edit", :sort => 1055

262
    Permission.create :controller => "issues", :action => "change_status", :description => "label_change_status", :sort => 1060, :mail_option => 1, :mail_enabled => 1

263
    Permission.create :controller => "issues", :action => "destroy", :description => "button_delete", :sort => 1065

264
    Permission.create :controller => "issues", :action => "add_attachment", :description => "label_attachment_new", :sort => 1070

265
    Permission.create :controller => "issues", :action => "destroy_attachment", :description => "label_attachment_delete", :sort => 1075

266
    # news

267
    Permission.create :controller => "projects", :action => "list_news", :description => "button_list", :sort => 1100, :is_public => true

268
    Permission.create :controller => "news", :action => "show", :description => "button_view", :sort => 1101, :is_public => true

269
    Permission.create :controller => "projects", :action => "add_news", :description => "button_add", :sort => 1120

270
    Permission.create :controller => "news", :action => "edit", :description => "button_edit", :sort => 1121

271
    Permission.create :controller => "news", :action => "destroy", :description => "button_delete", :sort => 1122

258
    Permission.create :controller => "issues", :action => "show", :description => "button_view", :sort => 1005, :is_public => true
259
    Permission.create :controller => "issues", :action => "download", :description => "button_download", :sort => 1010, :is_public => true
260
    Permission.create :controller => "projects", :action => "add_issue", :description => "button_add", :sort => 1050, :mail_option => 1, :mail_enabled => 1
261
    Permission.create :controller => "issues", :action => "edit", :description => "button_edit", :sort => 1055
262
    Permission.create :controller => "issues", :action => "change_status", :description => "label_change_status", :sort => 1060, :mail_option => 1, :mail_enabled => 1
263
    Permission.create :controller => "issues", :action => "destroy", :description => "button_delete", :sort => 1065
264
    Permission.create :controller => "issues", :action => "add_attachment", :description => "label_attachment_new", :sort => 1070
265
    Permission.create :controller => "issues", :action => "destroy_attachment", :description => "label_attachment_delete", :sort => 1075
266
    # news
267
    Permission.create :controller => "projects", :action => "list_news", :description => "button_list", :sort => 1100, :is_public => true
268
    Permission.create :controller => "news", :action => "show", :description => "button_view", :sort => 1101, :is_public => true
269
    Permission.create :controller => "projects", :action => "add_news", :description => "button_add", :sort => 1120
270
    Permission.create :controller => "news", :action => "edit", :description => "button_edit", :sort => 1121
271
    Permission.create :controller => "news", :action => "destroy", :description => "button_delete", :sort => 1122
272 272
    # documents
273
    Permission.create :controller => "projects", :action => "list_documents", :description => "button_list", :sort => 1200, :is_public => true

274
    Permission.create :controller => "documents", :action => "show", :description => "button_view", :sort => 1201, :is_public => true

275
    Permission.create :controller => "documents", :action => "download", :description => "button_download", :sort => 1202, :is_public => true

276
    Permission.create :controller => "projects", :action => "add_document", :description => "button_add", :sort => 1220

277
    Permission.create :controller => "documents", :action => "edit", :description => "button_edit", :sort => 1221

278
    Permission.create :controller => "documents", :action => "destroy", :description => "button_delete", :sort => 1222

279
    Permission.create :controller => "documents", :action => "add_attachment", :description => "label_attachment_new", :sort => 1223

280
    Permission.create :controller => "documents", :action => "destroy_attachment", :description => "label_attachment_delete", :sort => 1224

281
    # files

282
    Permission.create :controller => "projects", :action => "list_files", :description => "button_list", :sort => 1300, :is_public => true

283
    Permission.create :controller => "versions", :action => "download", :description => "button_download", :sort => 1301, :is_public => true

284
    Permission.create :controller => "projects", :action => "add_file", :description => "button_add", :sort => 1320

285
    Permission.create :controller => "versions", :action => "destroy_file", :description => "button_delete", :sort => 1322

286
    
287
    # create default administrator account

273
    Permission.create :controller => "projects", :action => "list_documents", :description => "button_list", :sort => 1200, :is_public => true
274
    Permission.create :controller => "documents", :action => "show", :description => "button_view", :sort => 1201, :is_public => true
275
    Permission.create :controller => "documents", :action => "download", :description => "button_download", :sort => 1202, :is_public => true
276
    Permission.create :controller => "projects", :action => "add_document", :description => "button_add", :sort => 1220
277
    Permission.create :controller => "documents", :action => "edit", :description => "button_edit", :sort => 1221
278
    Permission.create :controller => "documents", :action => "destroy", :description => "button_delete", :sort => 1222
279
    Permission.create :controller => "documents", :action => "add_attachment", :description => "label_attachment_new", :sort => 1223
280
    Permission.create :controller => "documents", :action => "destroy_attachment", :description => "label_attachment_delete", :sort => 1224
281
    # files
282
    Permission.create :controller => "projects", :action => "list_files", :description => "button_list", :sort => 1300, :is_public => true
283
    Permission.create :controller => "versions", :action => "download", :description => "button_download", :sort => 1301, :is_public => true
284
    Permission.create :controller => "projects", :action => "add_file", :description => "button_add", :sort => 1320
285
    Permission.create :controller => "versions", :action => "destroy_file", :description => "button_delete", :sort => 1322
286

  
287
    # create default administrator account
288 288
    user = User.create :login => "admin",
289 289
                       :hashed_password => "d033e22ae348aeb5660fc2140aec35850c4da997",
290 290
                       :admin => true,
......
296 296
                       :status => 1
297 297
  end
298 298

  
299
  def self.down

299
  def self.down
300 300
    drop_table :attachments
301
    drop_table :auth_sources

302
    drop_table :custom_fields

301
    drop_table :auth_sources
302
    drop_table :custom_fields
303 303
    drop_table :custom_fields_projects
304
    drop_table :custom_fields_trackers

305
    drop_table :custom_values

306
    drop_table :documents

307
    drop_table :enumerations

308
    drop_table :issue_categories

309
    drop_table :issue_histories

310
    drop_table :issue_statuses

311
    drop_table :issues

312
    drop_table :members

313
    drop_table :news

314
    drop_table :permissions

315
    drop_table :permissions_roles

316
    drop_table :projects

317
    drop_table :roles

318
    drop_table :trackers

304
    drop_table :custom_fields_trackers
305
    drop_table :custom_values
306
    drop_table :documents
307
    drop_table :enumerations
308
    drop_table :issue_categories
309
    drop_table :issue_histories
310
    drop_table :issue_statuses
311
    drop_table :issues
312
    drop_table :members
313
    drop_table :news
314
    drop_table :permissions
315
    drop_table :permissions_roles
316
    drop_table :projects
317
    drop_table :roles
318
    drop_table :trackers
319 319
    drop_table :tokens
320
    drop_table :users

321
    drop_table :versions

320
    drop_table :users
321
    drop_table :versions
322 322
    drop_table :workflows
323 323
  end
324 324
end
db/migrate/007_create_journals.rb
4 4
  class IssueHistory < ActiveRecord::Base; belongs_to :issue; end
5 5
  # model removed
6 6
  class Permission < ActiveRecord::Base; end
7
  
7

  
8 8
  def self.up
9 9
    create_table :journals, :force => true do |t|
10 10
      t.column "journalized_id", :integer, :default => 0, :null => false
......
20 20
      t.column "old_value", :string
21 21
      t.column "value", :string
22 22
    end
23
    
23

  
24 24
    # indexes
25 25
    add_index "journals", ["journalized_id", "journalized_type"], :name => "journals_journalized_id"
26 26
    add_index "journal_details", ["journal_id"], :name => "journal_details_journal_id"
27
    
27

  
28 28
    Permission.create :controller => "issues", :action => "history", :description => "label_history", :sort => 1006, :is_public => true, :mail_option => 0, :mail_enabled => 0
29 29

  
30 30
    # data migration
31 31
    IssueHistory.find(:all, :include => :issue).each {|h|
32 32
      j = Journal.new(:journalized => h.issue, :user_id => h.author_id, :notes => h.notes, :created_on => h.created_on)
33 33
      j.details << JournalDetail.new(:property => 'attr', :prop_key => 'status_id', :value => h.status_id)
34
      j.save    
35
    }    
34
      j.save
35
    }
36 36

  
37 37
    drop_table :issue_histories
38 38
  end
......
40 40
  def self.down
41 41
    drop_table :journal_details
42 42
    drop_table :journals
43
    
43

  
44 44
    create_table "issue_histories", :force => true do |t|
45 45
      t.column "issue_id", :integer, :default => 0, :null => false
46 46
      t.column "status_id", :integer, :default => 0, :null => false
......
48 48
      t.column "notes", :text, :default => ""
49 49
      t.column "created_on", :timestamp
50 50
    end
51
  
51

  
52 52
    add_index "issue_histories", ["issue_id"], :name => "issue_histories_issue_id"
53 53

  
54 54
    Permission.find(:first, :conditions => ["controller=? and action=?", 'issues', 'history']).destroy
db/migrate/027_create_wikis.rb
4 4
      t.column :project_id, :integer, :null => false
5 5
      t.column :start_page, :string,  :limit => 255, :null => false
6 6
      t.column :status, :integer, :default => 1, :null => false
7
    end    
7
    end
8 8
    add_index :wikis, :project_id, :name => :wikis_project_id
9 9
  end
10 10

  
db/migrate/028_create_wiki_pages.rb
3 3
    create_table :wiki_pages do |t|
4 4
      t.column :wiki_id, :integer, :null => false
5 5
      t.column :title, :string, :limit => 255, :null => false
6
      t.column :created_on, :datetime, :null => false    
6
      t.column :created_on, :datetime, :null => false
7 7
    end
8 8
    add_index :wiki_pages, [:wiki_id, :title], :name => :wiki_pages_wiki_id_title
9 9
  end
db/migrate/029_create_wiki_contents.rb
9 9
      t.column :version, :integer, :null => false
10 10
    end
11 11
    add_index :wiki_contents, :page_id, :name => :wiki_contents_page_id
12
    
12

  
13 13
    create_table :wiki_content_versions do |t|
14 14
      t.column :wiki_content_id, :integer, :null => false
15 15
      t.column :page_id, :integer, :null => false
db/migrate/055_add_repositories_type.rb
1 1
class AddRepositoriesType < ActiveRecord::Migration
2 2
  def self.up
3
    add_column :repositories, :type, :string    
3
    add_column :repositories, :type, :string
4 4
    # Set class name for existing SVN repositories
5 5
    Repository.update_all "type = 'Subversion'"
6 6
  end
db/migrate/062_insert_builtin_roles.rb
3 3
    nonmember = Role.new(:name => 'Non member', :position => 0)
4 4
    nonmember.builtin = Role::BUILTIN_NON_MEMBER
5 5
    nonmember.save
6
    
6

  
7 7
    anonymous = Role.new(:name => 'Anonymous', :position => 0)
8 8
    anonymous.builtin = Role::BUILTIN_ANONYMOUS
9
    anonymous.save  
9
    anonymous.save
10 10
  end
11 11

  
12 12
  def self.down
db/migrate/068_create_enabled_modules.rb
5 5
      t.column :name, :string, :null => false
6 6
    end
7 7
    add_index :enabled_modules, [:project_id], :name => :enabled_modules_project_id
8
    
8

  
9 9
    # Enable all modules for existing projects
10 10
    Project.find(:all).each do |project|
11 11
      project.enabled_module_names = Redmine::AccessControl.available_project_modules
db/migrate/081_create_projects_trackers.rb
5 5
      t.column :tracker_id, :integer, :default => 0, :null => false
6 6
    end
7 7
    add_index :projects_trackers, :project_id, :name => :projects_trackers_project_id
8
    
8

  
9 9
    # Associates all trackers to all projects (as it was before)
10 10
    tracker_ids = Tracker.find(:all).collect(&:id)
11 11
    Project.find(:all).each do |project|
db/migrate/096_add_commit_access_permission.rb
1 1
class AddCommitAccessPermission < ActiveRecord::Migration
2

  
3 2
  def self.up
4
	Role.find(:all).select { |r| not r.builtin? }.each do |r|
5
	     r.add_permission!(:commit_access)
6
  	end
3
    Role.find(:all).select { |r| not r.builtin? }.each do |r|
4
      r.add_permission!(:commit_access)
5
    end
7 6
  end
8 7

  
9 8
  def self.down
10
	Role.find(:all).select { |r| not r.builtin? }.each do |r|
11
	     r.remove_permission!(:commit_access)
12
  	end
9
    Role.find(:all).select { |r| not r.builtin? }.each do |r|
10
      r.remove_permission!(:commit_access)
11
    end
13 12
  end
14 13
end
db/migrate/097_add_view_wiki_edits_permission.rb
1 1
class AddViewWikiEditsPermission < ActiveRecord::Migration
2 2
  def self.up
3
	Role.find(:all).each do |r|
4
	  r.add_permission!(:view_wiki_edits) if r.has_permission?(:view_wiki_pages)
5
  	end
3
    Role.find(:all).each do |r|
4
      r.add_permission!(:view_wiki_edits) if r.has_permission?(:view_wiki_pages)
5
    end
6 6
  end
7 7

  
8 8
  def self.down
9
	Role.find(:all).each do |r|
10
	  r.remove_permission!(:view_wiki_edits)
11
  	end
9
    Role.find(:all).each do |r|
10
      r.remove_permission!(:view_wiki_edits)
11
    end
12 12
  end
13 13
end
db/migrate/099_add_delete_wiki_pages_attachments_permission.rb
1 1
class AddDeleteWikiPagesAttachmentsPermission < ActiveRecord::Migration
2 2
  def self.up
3
	Role.find(:all).each do |r|
4
	  r.add_permission!(:delete_wiki_pages_attachments) if r.has_permission?(:edit_wiki_pages)
5
  	end
3
    Role.find(:all).each do |r|
4
      r.add_permission!(:delete_wiki_pages_attachments) if r.has_permission?(:edit_wiki_pages)
5
    end
6 6
  end
7 7

  
8 8
  def self.down
9
	Role.find(:all).each do |r|
10
	  r.remove_permission!(:delete_wiki_pages_attachments)
11
  	end
9
    Role.find(:all).each do |r|
10
      r.remove_permission!(:delete_wiki_pages_attachments)
11
    end
12 12
  end
13 13
end
db/migrate/20100313132032_add_issues_nested_sets_columns.rb
4 4
    add_column :issues, :root_id, :integer, :default => nil
5 5
    add_column :issues, :lft, :integer, :default => nil
6 6
    add_column :issues, :rgt, :integer, :default => nil
7
    
7

  
8 8
    Issue.update_all("parent_id = NULL, root_id = id, lft = 1, rgt = 2")
9 9
  end
10 10

  
db/migrate/20100705164950_change_changes_path_length_limit.rb
3 3
    # these are two steps to please MySQL 5 on Win32
4 4
    change_column :changes, :path, :text, :default => nil, :null => true
5 5
    change_column :changes, :path, :text, :null => false
6
    
6

  
7 7
    change_column :changes, :from_path, :text
8 8
  end
9 9

  
db/migrate/20101104182107_add_unique_index_on_members.rb
11 11
      " WHERE m.id > (SELECT min(m1.id) FROM #{Member.table_name} m1 WHERE m1.user_id = m.user_id AND m1.project_id = m.project_id)").each do |i|
12 12
        Member.delete_all(["id = ?", i])
13 13
      end
14
    
14

  
15 15
    # Then add a unique index
16 16
    add_index :members, [:user_id, :project_id], :unique => true
17 17
  end
db/migrate/20110902000000_create_changeset_parents.rb
1
class CreateChangesetParents < ActiveRecord::Migration
2
  def self.up
3
    create_table :changeset_parents, :id => false do |t|
4
      t.column :changeset_id, :integer, :null => false
5
      t.column :parent_id, :integer, :null => false
6
    end
7
    add_index :changeset_parents, [:changeset_id], :unique => false, :name => :changeset_parents_changeset_ids
8
    add_index :changeset_parents, [:parent_id], :unique => false, :name => :changeset_parents_parent_ids
9
  end
10

  
11
  def self.down
12
     drop_table :changeset_parents
13
  end
14
end

Also available in: Unified diff