20120101000001_create_base.rb 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326
  1. class CreateBase < ActiveRecord::Migration
  2. def up
  3. create_table :sessions do |t|
  4. t.string :session_id, :null => false
  5. t.text :data
  6. t.timestamps
  7. end
  8. add_index :sessions, :session_id
  9. add_index :sessions, :updated_at
  10. create_table :users do |t|
  11. t.references :organization, :null => true
  12. t.column :login, :string, :limit => 100, :null => false
  13. t.column :firstname, :string, :limit => 100, :null => true, :default => ''
  14. t.column :lastname, :string, :limit => 100, :null => true, :default => ''
  15. t.column :email, :string, :limit => 140, :null => true, :default => ''
  16. t.column :image, :string, :limit => 100, :null => true
  17. t.column :image_source, :string, :limit => 200, :null => true
  18. t.column :web, :string, :limit => 100, :null => true, :default => ''
  19. t.column :password, :string, :limit => 100, :null => true
  20. t.column :phone, :string, :limit => 100, :null => true, :default => ''
  21. t.column :fax, :string, :limit => 100, :null => true, :default => ''
  22. t.column :mobile, :string, :limit => 100, :null => true, :default => ''
  23. t.column :department, :string, :limit => 200, :null => true, :default => ''
  24. t.column :street, :string, :limit => 120, :null => true, :default => ''
  25. t.column :zip, :string, :limit => 100, :null => true, :default => ''
  26. t.column :city, :string, :limit => 100, :null => true, :default => ''
  27. t.column :country, :string, :limit => 100, :null => true, :default => ''
  28. t.column :verified, :boolean, :null => false, :default => false
  29. t.column :active, :boolean, :null => false, :default => true
  30. t.column :note, :string, :limit => 250, :null => true, :default => ''
  31. t.column :last_login, :timestamp, :null => true
  32. t.column :source, :string, :limit => 200, :null => true
  33. t.column :login_failed, :integer, :null => false, :default => 0
  34. t.column :preferences, :string, :limit => 8000,:null => true
  35. t.column :updated_by_id, :integer, :null => false
  36. t.column :created_by_id, :integer, :null => false
  37. t.timestamps
  38. end
  39. add_index :users, [:login], :unique => true
  40. add_index :users, [:email]
  41. # add_index :users, [:email], :unique => true
  42. add_index :users, [:image]
  43. add_index :users, [:department]
  44. add_index :users, [:phone]
  45. add_index :users, [:fax]
  46. add_index :users, [:mobile]
  47. add_index :users, [:source]
  48. add_index :users, [:created_by_id]
  49. create_table :signatures do |t|
  50. t.column :name, :string, :limit => 100, :null => false
  51. t.column :body, :string, :limit => 5000, :null => true
  52. t.column :active, :boolean, :null => false, :default => true
  53. t.column :note, :string, :limit => 250, :null => true
  54. t.column :updated_by_id, :integer, :null => false
  55. t.column :created_by_id, :integer, :null => false
  56. t.timestamps
  57. end
  58. add_index :signatures, [:name], :unique => true
  59. create_table :email_addresses do |t|
  60. t.column :realname, :string, :limit => 250, :null => false
  61. t.column :email, :string, :limit => 250, :null => false
  62. t.column :active, :boolean, :null => false, :default => true
  63. t.column :note, :string, :limit => 250, :null => true
  64. t.column :updated_by_id, :integer, :null => false
  65. t.column :created_by_id, :integer, :null => false
  66. t.timestamps
  67. end
  68. add_index :email_addresses, [:email], :unique => true
  69. create_table :groups do |t|
  70. t.references :signature, :null => true
  71. t.references :email_address, :null => true
  72. t.column :name, :string, :limit => 100, :null => false
  73. t.column :assignment_timeout, :integer, :null => true
  74. t.column :follow_up_possible, :string, :limit => 100, :null => false, :default => 'yes'
  75. t.column :follow_up_assignment, :boolean, :null => false, :default => true
  76. t.column :active, :boolean, :null => false, :default => true
  77. t.column :note, :string, :limit => 250, :null => true
  78. t.column :updated_by_id, :integer, :null => false
  79. t.column :created_by_id, :integer, :null => false
  80. t.timestamps
  81. end
  82. add_index :groups, [:name], :unique => true
  83. create_table :roles do |t|
  84. t.column :name, :string, :limit => 100, :null => false
  85. t.column :active, :boolean, :null => false, :default => true
  86. t.column :note, :string, :limit => 250, :null => true
  87. t.column :updated_by_id, :integer, :null => false
  88. t.column :created_by_id, :integer, :null => false
  89. t.timestamps
  90. end
  91. add_index :roles, [:name], :unique => true
  92. create_table :organizations do |t|
  93. t.column :name, :string, :limit => 100, :null => false
  94. t.column :shared, :boolean, :null => false, :default => true
  95. t.column :active, :boolean, :null => false, :default => true
  96. t.column :note, :string, :limit => 250, :null => true, :default => ''
  97. t.column :updated_by_id, :integer, :null => false
  98. t.column :created_by_id, :integer, :null => false
  99. t.timestamps
  100. end
  101. add_index :organizations, [:name], :unique => true
  102. create_table :roles_users, :id => false do |t|
  103. t.integer :user_id
  104. t.integer :role_id
  105. end
  106. create_table :groups_users, :id => false do |t|
  107. t.integer :user_id
  108. t.integer :group_id
  109. end
  110. create_table :organizations_users, :id => false do |t|
  111. t.integer :user_id
  112. t.integer :organization_id
  113. end
  114. create_table :authorizations do |t|
  115. t.string :provider, :limit => 250, :null => false
  116. t.string :uid, :limit => 250, :null => false
  117. t.string :token, :limit => 250, :null => true
  118. t.string :secret, :limit => 250, :null => true
  119. t.string :username, :limit => 250, :null => true
  120. t.references :user, :null => false
  121. t.timestamps
  122. end
  123. add_index :authorizations, [:uid, :provider]
  124. add_index :authorizations, [:user_id]
  125. add_index :authorizations, [:username]
  126. create_table :translations do |t|
  127. t.column :locale, :string, :limit => 10, :null => false
  128. t.column :source, :string, :limit => 255, :null => false
  129. t.column :target, :string, :limit => 255, :null => false
  130. t.column :target_initial, :string, :limit => 255, :null => false
  131. t.column :updated_by_id, :integer, :null => false
  132. t.column :created_by_id, :integer, :null => false
  133. t.timestamps
  134. end
  135. add_index :translations, [:source]
  136. add_index :translations, [:locale]
  137. create_table :object_lookups do |t|
  138. t.column :name, :string, :limit => 250, :null => false
  139. t.timestamps
  140. end
  141. add_index :object_lookups, [:name], :unique => true
  142. create_table :type_lookups do |t|
  143. t.column :name, :string, :limit => 250, :null => false
  144. t.timestamps
  145. end
  146. add_index :type_lookups, [:name], :unique => true
  147. create_table :tokens do |t|
  148. t.references :user, :null => false
  149. t.string :name, :limit => 100, :null => false
  150. t.string :action, :limit => 40, :null => false
  151. t.timestamps
  152. end
  153. add_index :tokens, :user_id
  154. add_index :tokens, [:name, :action], :unique => true
  155. add_index :tokens, :created_at
  156. create_table :packages do |t|
  157. t.column :name, :string, :limit => 250, :null => false
  158. t.column :version, :string, :limit => 50, :null => false
  159. t.column :vendor, :string, :limit => 150, :null => false
  160. t.column :state, :string, :limit => 50, :null => false
  161. t.column :updated_by_id, :integer, :null => false
  162. t.column :created_by_id, :integer, :null => false
  163. t.timestamps
  164. end
  165. create_table :package_migrations do |t|
  166. t.column :name, :string, :limit => 250, :null => false
  167. t.column :version, :string, :limit => 250, :null => false
  168. t.timestamps
  169. end
  170. create_table :taskbars do |t|
  171. t.column :user_id, :integer, :null => false
  172. t.column :last_contact, :datetime, :null => false
  173. t.column :client_id, :string, :null => false
  174. t.column :key, :string, :limit => 100, :null => false
  175. t.column :callback, :string, :limit => 100, :null => false
  176. t.column :state, :string, :limit => 8000, :null => true
  177. t.column :params, :string, :limit => 2000, :null => true
  178. t.column :prio, :integer, :null => false
  179. t.column :notify, :boolean, :null => false, :default => false
  180. t.column :active, :boolean, :null => false, :default => false
  181. t.timestamps
  182. end
  183. add_index :taskbars, [:user_id]
  184. add_index :taskbars, [:client_id]
  185. create_table :tags do |t|
  186. t.references :tag_item, :null => false
  187. t.references :tag_object, :null => false
  188. t.column :o_id, :integer, :null => false
  189. t.column :created_by_id, :integer, :null => false
  190. t.timestamps
  191. end
  192. add_index :tags, [:o_id]
  193. add_index :tags, [:tag_object_id]
  194. create_table :tag_objects do |t|
  195. t.column :name, :string, :limit => 250, :null => false
  196. t.timestamps
  197. end
  198. add_index :tag_objects, [:name], :unique => true
  199. create_table :tag_items do |t|
  200. t.column :name, :string, :limit => 250, :null => false
  201. t.timestamps
  202. end
  203. add_index :tag_items, [:name], :unique => true
  204. create_table :recent_views do |t|
  205. t.references :recent_view_object, :null => false
  206. t.column :o_id, :integer, :null => false
  207. t.column :created_by_id, :integer, :null => false
  208. t.timestamps
  209. end
  210. add_index :recent_views, [:o_id]
  211. add_index :recent_views, [:created_by_id]
  212. add_index :recent_views, [:created_at]
  213. add_index :recent_views, [:recent_view_object_id]
  214. create_table :activity_streams do |t|
  215. t.references :activity_stream_type, :null => false
  216. t.references :activity_stream_object, :null => false
  217. t.references :role, :null => true
  218. t.references :group, :null => true
  219. t.column :o_id, :integer, :null => false
  220. t.column :created_by_id, :integer, :null => false
  221. t.timestamps
  222. end
  223. add_index :activity_streams, [:o_id]
  224. add_index :activity_streams, [:created_by_id]
  225. add_index :activity_streams, [:role_id]
  226. add_index :activity_streams, [:group_id]
  227. add_index :activity_streams, [:created_at]
  228. add_index :activity_streams, [:activity_stream_object_id]
  229. add_index :activity_streams, [:activity_stream_type_id]
  230. create_table :histories do |t|
  231. t.references :history_type, :null => false
  232. t.references :history_object, :null => false
  233. t.references :history_attribute, :null => true
  234. t.column :o_id, :integer, :null => false
  235. t.column :related_o_id, :integer, :null => true
  236. t.column :related_history_object_id, :integer, :null => true
  237. t.column :id_to, :integer, :null => true
  238. t.column :id_from, :integer, :null => true
  239. t.column :value_from, :string, :limit => 250, :null => true
  240. t.column :value_to, :string, :limit => 250, :null => true
  241. t.column :created_by_id, :integer, :null => false
  242. t.timestamps
  243. end
  244. add_index :histories, [:o_id]
  245. add_index :histories, [:created_by_id]
  246. add_index :histories, [:created_at]
  247. add_index :histories, [:history_object_id]
  248. add_index :histories, [:history_attribute_id]
  249. add_index :histories, [:history_type_id]
  250. add_index :histories, [:id_to]
  251. add_index :histories, [:id_from]
  252. add_index :histories, [:value_from]
  253. add_index :histories, [:value_to]
  254. create_table :history_types do |t|
  255. t.column :name, :string, :limit => 250, :null => false
  256. t.timestamps
  257. end
  258. add_index :history_types, [:name], :unique => true
  259. create_table :history_objects do |t|
  260. t.column :name, :string, :limit => 250, :null => false
  261. t.column :note, :string, :limit => 250, :null => true
  262. t.timestamps
  263. end
  264. add_index :history_objects, [:name], :unique => true
  265. create_table :history_attributes do |t|
  266. t.column :name, :string, :limit => 250, :null => false
  267. t.timestamps
  268. end
  269. add_index :history_attributes, [:name], :unique => true
  270. create_table :settings do |t|
  271. t.column :title, :string, :limit => 200, :null => false
  272. t.column :name, :string, :limit => 200, :null => false
  273. t.column :area, :string, :limit => 100, :null => false
  274. t.column :description, :string, :limit => 2000, :null => false
  275. t.column :options, :string, :limit => 2000, :null => true
  276. t.column :state, :string, :limit => 2000, :null => true
  277. t.column :state_initial, :string, :limit => 2000, :null => true
  278. t.column :frontend, :boolean, :null => false
  279. t.timestamps
  280. end
  281. add_index :settings, [:name], :unique => true
  282. add_index :settings, [:area]
  283. add_index :settings, [:frontend]
  284. end
  285. end