To check out this repository please hg clone the following URL, or open the URL using EasyMercurial or your preferred Mercurial client.

Statistics Download as Zip
| Branch: | Tag: | Revision:

root / .svn / pristine / 9c / 9c8d7e3ea9bc579728760fb816b35a79ff5e2372.svn-base @ 1297:0a574315af3e

History | View | Annotate | Download (17.3 KB)

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

    
18
class Setup < ActiveRecord::Migration
19

    
20
  class User < ActiveRecord::Base; end
21
  # model removed
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
37

    
38
    create_table "auth_sources", :force => true do |t|
39
      t.column "type", :string, :limit => 30, :default => "", :null => false
40
      t.column "name", :string, :limit => 60, :default => "", :null => false
41
      t.column "host", :string, :limit => 60
42
      t.column "port", :integer
43
      t.column "account", :string, :limit => 60
44
      t.column "account_password", :string, :limit => 60
45
      t.column "base_dn", :string, :limit => 255
46
      t.column "attr_login", :string, :limit => 30
47
      t.column "attr_firstname", :string, :limit => 30
48
      t.column "attr_lastname", :string, :limit => 30
49
      t.column "attr_mail", :string, :limit => 30
50
      t.column "onthefly_register", :boolean, :default => false, :null => false
51
    end
52

    
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
61
      t.column "is_required", :boolean, :default => false, :null => false
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
69

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

    
75
    create_table "custom_values", :force => true do |t|
76
      t.column "customized_type", :string, :limit => 30, :default => "", :null => false
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
88
    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
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
      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
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
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
      t.column "is_public", :boolean, :default => true, :null => false
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
189

    
190
    create_table "tokens", :force => true do |t|
191
      t.column "user_id", :integer, :default => 0, :null => false
192
      t.column "action", :string, :limit => 30, :default => "", :null => false
193
      t.column "value", :string, :limit => 40, :default => "", :null => false
194
      t.column "created_on", :datetime, :null => false
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
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
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
    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
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
288
    user = User.create :login => "admin",
289
                       :hashed_password => "d033e22ae348aeb5660fc2140aec35850c4da997",
290
                       :admin => true,
291
                       :firstname => "Redmine",
292
                       :lastname => "Admin",
293
                       :mail => "admin@example.net",
294
                       :mail_notification => true,
295
                       :language => "en",
296
                       :status => 1
297
  end
298

    
299
  def self.down
300
    drop_table :attachments
301
    drop_table :auth_sources
302
    drop_table :custom_fields
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
319
    drop_table :tokens
320
    drop_table :users
321
    drop_table :versions
322
    drop_table :workflows
323
  end
324
end