Merge branch 'master' of gitorious.org:+fiit/gitorious/gitorious-fiit-mainline
[gitorious:gitorious-fiit-mainline.git] / db / schema.rb
1 # This file is auto-generated from the current state of the database. Instead of editing this file, 
2 # please use the migrations feature of Active Record to incrementally modify your database, and
3 # then regenerate this schema definition.
4 #
5 # Note that this schema.rb definition is the authoritative source for your database schema. If you need
6 # to create the application database on another system, you should be using db:schema:load, not running
7 # all the migrations from scratch. The latter is a flawed and unsustainable approach (the more migrations
8 # you'll amass, the slower it'll run and the greater likelihood for issues).
9 #
10 # It's strongly recommended to check this file into your version control system.
11
12 ActiveRecord::Schema.define(:version => 20110223130355) do
13
14   create_table "archived_events", :force => true do |t|
15     t.integer  "user_id"
16     t.integer  "project_id"
17     t.integer  "action"
18     t.string   "data"
19     t.text     "body"
20     t.integer  "target_id"
21     t.string   "target_type"
22     t.string   "user_email"
23     t.datetime "created_at"
24     t.datetime "updated_at"
25   end
26
27   create_table "cloners", :force => true do |t|
28     t.string   "ip"
29     t.string   "country_code"
30     t.string   "country"
31     t.datetime "date"
32     t.integer  "repository_id"
33     t.string   "protocol"
34   end
35
36   add_index "cloners", ["date"], :name => "index_cloners_on_date"
37   add_index "cloners", ["ip"], :name => "index_cloners_on_ip"
38   add_index "cloners", ["repository_id"], :name => "index_cloners_on_repository_id"
39
40   create_table "comments", :force => true do |t|
41     t.integer  "user_id",           :null => false
42     t.integer  "target_id",         :null => false
43     t.string   "sha1"
44     t.text     "body"
45     t.datetime "created_at"
46     t.datetime "updated_at"
47     t.integer  "project_id"
48     t.string   "target_type"
49     t.string   "state_change"
50     t.string   "path"
51     t.string   "first_line_number"
52     t.integer  "number_of_lines"
53     t.text     "context"
54     t.string   "last_line_number"
55   end
56
57   add_index "comments", ["project_id"], :name => "index_comments_on_project_id"
58   add_index "comments", ["sha1"], :name => "index_comments_on_sha1"
59   add_index "comments", ["target_id", "target_type"], :name => "index_comments_on_target_id_and_target_type"
60   add_index "comments", ["target_id"], :name => "index_comments_on_repository_id"
61   add_index "comments", ["user_id"], :name => "index_comments_on_user_id"
62
63   create_table "committerships", :force => true do |t|
64     t.integer  "committer_id"
65     t.integer  "repository_id"
66     t.integer  "kind",           :default => 2
67     t.datetime "created_at"
68     t.datetime "updated_at"
69     t.string   "committer_type",                :null => false
70     t.integer  "creator_id"
71     t.integer  "permissions"
72   end
73
74   add_index "committerships", ["committer_id", "committer_type"], :name => "index_committerships_on_committer_id_and_committer_type"
75   add_index "committerships", ["committer_id"], :name => "index_permissions_on_user_id"
76   add_index "committerships", ["repository_id"], :name => "index_committerships_on_repository_id"
77   add_index "committerships", ["repository_id"], :name => "index_permissions_on_repository_id"
78
79   create_table "emails", :force => true do |t|
80     t.integer  "user_id"
81     t.string   "address"
82     t.string   "aasm_state"
83     t.string   "confirmation_code"
84     t.datetime "created_at"
85     t.datetime "updated_at"
86   end
87
88   add_index "emails", ["address"], :name => "index_emails_on_address"
89   add_index "emails", ["user_id"], :name => "index_emails_on_user_id"
90
91   create_table "events", :force => true do |t|
92     t.integer  "user_id"
93     t.integer  "project_id",  :null => false
94     t.integer  "action",      :null => false
95     t.string   "data"
96     t.text     "body"
97     t.integer  "target_id"
98     t.string   "target_type"
99     t.datetime "created_at"
100     t.datetime "updated_at"
101     t.string   "user_email"
102   end
103
104   add_index "events", ["action"], :name => "index_events_on_action"
105   add_index "events", ["created_at", "project_id"], :name => "index_events_on_created_at_and_project_id"
106   add_index "events", ["created_at"], :name => "index_events_on_created_at"
107   add_index "events", ["project_id"], :name => "index_events_on_project_id"
108   add_index "events", ["target_type", "target_id"], :name => "index_events_on_target_type_and_target_id"
109   add_index "events", ["user_id"], :name => "index_events_on_user_id"
110
111   create_table "favorites", :force => true do |t|
112     t.integer  "user_id"
113     t.string   "watchable_type"
114     t.integer  "watchable_id"
115     t.string   "action"
116     t.datetime "created_at"
117     t.datetime "updated_at"
118     t.boolean  "notify_by_email", :default => false
119   end
120
121   add_index "favorites", ["watchable_type", "watchable_id", "user_id"], :name => "index_favorites_on_watchable_type_and_watchable_id_and_user_id"
122
123   create_table "feed_items", :force => true do |t|
124     t.integer  "event_id"
125     t.integer  "watcher_id"
126     t.datetime "created_at"
127     t.datetime "updated_at"
128   end
129
130   add_index "feed_items", ["watcher_id", "created_at"], :name => "index_feed_items_on_watcher_id_and_created_at"
131
132   create_table "groups", :force => true do |t|
133     t.string   "name"
134     t.integer  "user_id"
135     t.datetime "created_at"
136     t.datetime "updated_at"
137     t.text     "description"
138     t.string   "avatar_file_name"
139     t.string   "avatar_content_type"
140     t.integer  "avatar_file_size"
141     t.datetime "avatar_updated_at"
142   end
143
144   add_index "groups", ["name"], :name => "index_groups_on_name_and_public"
145   add_index "groups", ["user_id"], :name => "index_groups_on_user_id"
146
147   create_table "hooks", :force => true do |t|
148     t.integer  "user_id"
149     t.integer  "repository_id"
150     t.string   "url"
151     t.string   "last_response"
152     t.datetime "created_at"
153     t.datetime "updated_at"
154     t.integer  "failed_request_count",     :default => 0
155     t.integer  "successful_request_count", :default => 0
156   end
157
158   add_index "hooks", ["repository_id"], :name => "index_hooks_on_repository_id"
159
160   create_table "memberships", :force => true do |t|
161     t.integer  "group_id"
162     t.integer  "user_id"
163     t.integer  "role_id"
164     t.datetime "created_at"
165     t.datetime "updated_at"
166   end
167
168   add_index "memberships", ["group_id", "user_id"], :name => "index_memberships_on_group_id_and_user_id"
169
170   create_table "merge_request_statuses", :force => true do |t|
171     t.integer  "project_id"
172     t.string   "name"
173     t.string   "color"
174     t.integer  "state"
175     t.string   "description"
176     t.datetime "created_at"
177     t.datetime "updated_at"
178     t.boolean  "default",     :default => false
179   end
180
181   add_index "merge_request_statuses", ["project_id", "name"], :name => "index_merge_request_statuses_on_project_id_and_name"
182   add_index "merge_request_statuses", ["project_id"], :name => "index_merge_request_statuses_on_project_id"
183
184   create_table "merge_request_versions", :force => true do |t|
185     t.integer  "merge_request_id"
186     t.integer  "version"
187     t.string   "merge_base_sha"
188     t.datetime "created_at"
189     t.datetime "updated_at"
190   end
191
192   create_table "merge_requests", :force => true do |t|
193     t.integer  "user_id"
194     t.integer  "source_repository_id"
195     t.integer  "target_repository_id"
196     t.text     "proposal"
197     t.string   "sha_snapshot"
198     t.integer  "status",                         :default => 0
199     t.datetime "created_at"
200     t.datetime "updated_at"
201     t.string   "source_branch"
202     t.string   "target_branch"
203     t.string   "ending_commit"
204     t.text     "reason"
205     t.string   "oauth_token"
206     t.string   "oauth_secret"
207     t.string   "contribution_agreement_version"
208     t.integer  "updated_by_user_id"
209     t.string   "status_tag"
210     t.string   "summary",                                           :null => false
211     t.boolean  "legacy",                         :default => false
212     t.integer  "sequence_number"
213   end
214
215   add_index "merge_requests", ["sequence_number", "target_repository_id"], :name => "index_merge_requests_on_sequence_number_and_target_repository_id", :unique => true
216   add_index "merge_requests", ["source_repository_id"], :name => "index_merge_requests_on_source_repository_id"
217   add_index "merge_requests", ["status"], :name => "index_merge_requests_on_status"
218   add_index "merge_requests", ["target_repository_id"], :name => "index_merge_requests_on_target_repository_id"
219   add_index "merge_requests", ["user_id"], :name => "index_merge_requests_on_user_id"
220
221   create_table "messages", :force => true do |t|
222     t.integer  "sender_id"
223     t.integer  "recipient_id"
224     t.string   "subject"
225     t.text     "body"
226     t.string   "notifiable_type"
227     t.integer  "notifiable_id"
228     t.string   "aasm_state"
229     t.integer  "in_reply_to_id"
230     t.datetime "created_at"
231     t.datetime "updated_at"
232     t.integer  "root_message_id"
233     t.boolean  "has_unread_replies",    :default => false
234     t.boolean  "archived_by_sender",    :default => false
235     t.boolean  "archived_by_recipient", :default => false
236     t.datetime "last_activity_at"
237   end
238
239   add_index "messages", ["aasm_state"], :name => "index_messages_on_aasm_state"
240   add_index "messages", ["in_reply_to_id"], :name => "index_messages_on_in_reply_to_id"
241   add_index "messages", ["notifiable_type", "notifiable_id"], :name => "index_messages_on_notifiable_type_and_notifiable_id"
242   add_index "messages", ["recipient_id"], :name => "index_messages_on_recipient_id"
243   add_index "messages", ["sender_id"], :name => "index_messages_on_sender_id"
244
245   create_table "open_id_authentication_associations", :force => true do |t|
246     t.integer "issued"
247     t.integer "lifetime"
248     t.string  "handle"
249     t.string  "assoc_type"
250     t.binary  "server_url"
251     t.binary  "secret"
252   end
253
254   create_table "open_id_authentication_nonces", :force => true do |t|
255     t.integer "timestamp",  :null => false
256     t.string  "server_url"
257     t.string  "salt",       :null => false
258   end
259
260   create_table "projects", :force => true do |t|
261     t.string   "title"
262     t.text     "description"
263     t.integer  "user_id"
264     t.datetime "created_at"
265     t.datetime "updated_at"
266     t.string   "slug"
267     t.string   "license"
268     t.string   "home_url"
269     t.string   "mailinglist_url"
270     t.string   "bugtracker_url"
271     t.integer  "owner_id"
272     t.string   "owner_type"
273     t.boolean  "wiki_enabled",                :default => true
274     t.integer  "site_id"
275     t.boolean  "merge_requests_need_signoff", :default => false
276     t.string   "oauth_signoff_key"
277     t.string   "oauth_signoff_secret"
278     t.string   "oauth_signoff_site"
279     t.string   "oauth_path_prefix"
280     t.text     "merge_request_custom_states"
281     t.datetime "suspended_at"
282   end
283
284   add_index "projects", ["owner_type", "owner_id"], :name => "index_projects_on_owner_type_and_owner_id"
285   add_index "projects", ["site_id"], :name => "index_projects_on_site_id"
286   add_index "projects", ["slug"], :name => "index_projects_on_slug", :unique => true
287   add_index "projects", ["title"], :name => "index_projects_on_name"
288   add_index "projects", ["user_id"], :name => "index_projects_on_user_id"
289
290   create_table "repositories", :force => true do |t|
291     t.string   "name"
292     t.integer  "project_id"
293     t.integer  "user_id"
294     t.datetime "created_at"
295     t.datetime "updated_at"
296     t.integer  "parent_id"
297     t.boolean  "ready",                                  :default => false
298     t.integer  "kind",                                   :default => 0
299     t.string   "owner_type"
300     t.integer  "owner_id"
301     t.string   "hashed_path"
302     t.text     "description"
303     t.datetime "last_pushed_at"
304     t.integer  "wiki_permissions",                       :default => 0
305     t.boolean  "deny_force_pushing",                     :default => false
306     t.boolean  "notify_committers_on_new_merge_request", :default => true
307     t.datetime "last_gc_at"
308     t.boolean  "merge_requests_enabled",                 :default => true
309     t.integer  "disk_usage"
310     t.integer  "push_count_since_gc"
311   end
312
313   add_index "repositories", ["hashed_path"], :name => "index_repositories_on_hashed_path", :unique => true
314   add_index "repositories", ["kind"], :name => "index_repositories_on_kind"
315   add_index "repositories", ["name"], :name => "index_repositories_on_name"
316   add_index "repositories", ["owner_type", "owner_id"], :name => "index_repositories_on_owner_type_and_owner_id"
317   add_index "repositories", ["parent_id"], :name => "index_repositories_on_parent_id"
318   add_index "repositories", ["project_id", "kind"], :name => "index_repositories_on_project_id_and_kind"
319   add_index "repositories", ["project_id"], :name => "index_repositories_on_project_id"
320   add_index "repositories", ["ready"], :name => "index_repositories_on_ready"
321   add_index "repositories", ["user_id"], :name => "index_repositories_on_user_id"
322
323   create_table "roles", :force => true do |t|
324     t.string   "name"
325     t.integer  "kind"
326     t.datetime "created_at"
327     t.datetime "updated_at"
328   end
329
330   create_table "sessions", :force => true do |t|
331     t.string   "session_id", :null => false
332     t.text     "data"
333     t.datetime "created_at"
334     t.datetime "updated_at"
335   end
336
337   add_index "sessions", ["session_id"], :name => "index_sessions_on_session_id"
338   add_index "sessions", ["updated_at"], :name => "index_sessions_on_updated_at"
339
340   create_table "sites", :force => true do |t|
341     t.string   "title"
342     t.string   "subdomain"
343     t.datetime "created_at"
344     t.datetime "updated_at"
345   end
346
347   add_index "sites", ["subdomain"], :name => "index_sites_on_subdomain"
348
349   create_table "ssh_keys", :force => true do |t|
350     t.integer  "user_id"
351     t.text     "key"
352     t.datetime "created_at"
353     t.datetime "updated_at"
354     t.boolean  "ready",      :default => false
355   end
356
357   add_index "ssh_keys", ["user_id"], :name => "index_ssh_keys_on_user_id"
358
359   create_table "taggings", :force => true do |t|
360     t.integer  "tag_id"
361     t.integer  "taggable_id"
362     t.string   "taggable_type"
363     t.datetime "created_at"
364   end
365
366   add_index "taggings", ["tag_id"], :name => "index_taggings_on_tag_id"
367   add_index "taggings", ["taggable_id", "taggable_type"], :name => "index_taggings_on_taggable_id_and_taggable_type"
368
369   create_table "tags", :force => true do |t|
370     t.string "name"
371   end
372
373   add_index "tags", ["name"], :name => "index_tags_on_name", :unique => true
374
375   create_table "users", :force => true do |t|
376     t.string   "login"
377     t.string   "email"
378     t.string   "crypted_password",               :limit => 40
379     t.string   "salt",                           :limit => 40
380     t.datetime "created_at"
381     t.datetime "updated_at"
382     t.string   "remember_token"
383     t.datetime "remember_token_expires_at"
384     t.string   "activation_code",                :limit => 40
385     t.datetime "activated_at"
386     t.integer  "ssh_key_id"
387     t.string   "fullname"
388     t.text     "url"
389     t.text     "identity_url"
390     t.boolean  "is_admin",                                     :default => false
391     t.datetime "suspended_at"
392     t.string   "aasm_state"
393     t.boolean  "public_email",                                 :default => true
394     t.boolean  "wants_email_notifications",                    :default => true
395     t.string   "password_key"
396     t.string   "avatar_file_name"
397     t.string   "avatar_content_type"
398     t.integer  "avatar_file_size"
399     t.datetime "avatar_updated_at"
400     t.boolean  "default_favorite_notifications",                :default => false
401     t.string   "ldap_login",                     :limit => 100
402   end
403
404   add_index "users", ["email"], :name => "index_users_on_email"
405   add_index "users", ["login"], :name => "index_users_on_login"
406   add_index "users", ["password_key"], :name => "index_users_on_password_key"
407   add_index "users", ["ssh_key_id"], :name => "index_users_on_ssh_key_id"
408
409 end