ea848a29403d39c955d1254d5e3ec1e8daa8d9cd
[feedcatcher.git] / vendor / rails / activerecord / test / schema / schema.rb
1
2 ActiveRecord::Schema.define do
3 def except(adapter_names_to_exclude)
4 unless [adapter_names_to_exclude].flatten.include?(adapter_name)
5 yield
6 end
7 end
8
9 #put adapter specific setup here
10 case adapter_name
11 # For Firebird, set the sequence values 10000 when create_table is called;
12 # this prevents primary key collisions between "normally" created records
13 # and fixture-based (YAML) records.
14 when "Firebird"
15 def create_table(*args, &block)
16 ActiveRecord::Base.connection.create_table(*args, &block)
17 ActiveRecord::Base.connection.execute "SET GENERATOR #{args.first}_seq TO 10000"
18 end
19 end
20
21
22 # Please keep these create table statements in alphabetical order
23 # unless the ordering matters. In which case, define them below
24 create_table :accounts, :force => true do |t|
25 t.integer :firm_id
26 t.integer :credit_limit
27 end
28
29 create_table :audit_logs, :force => true do |t|
30 t.column :message, :string, :null=>false
31 t.column :developer_id, :integer, :null=>false
32 end
33
34 create_table :authors, :force => true do |t|
35 t.string :name, :null => false
36 t.integer :author_address_id
37 t.integer :author_address_extra_id
38 end
39
40 create_table :author_addresses, :force => true do |t|
41 end
42
43 create_table :author_favorites, :force => true do |t|
44 t.column :author_id, :integer
45 t.column :favorite_author_id, :integer
46 end
47
48
49 create_table :auto_id_tests, :force => true, :id => false do |t|
50 t.primary_key :auto_id
51 t.integer :value
52 end
53
54 create_table :binaries, :force => true do |t|
55 t.binary :data
56 end
57
58 create_table :birds, :force => true do |t|
59 t.string :name
60 t.integer :pirate_id
61 end
62
63 create_table :books, :force => true do |t|
64 t.column :name, :string
65 end
66
67 create_table :booleantests, :force => true do |t|
68 t.boolean :value
69 end
70
71 create_table :categories, :force => true do |t|
72 t.string :name, :null => false
73 t.string :type
74 t.integer :categorizations_count
75 end
76
77 create_table :categories_posts, :force => true, :id => false do |t|
78 t.integer :category_id, :null => false
79 t.integer :post_id, :null => false
80 end
81
82 create_table :categorizations, :force => true do |t|
83 t.column :category_id, :integer
84 t.column :post_id, :integer
85 t.column :author_id, :integer
86 end
87
88 create_table :citations, :force => true do |t|
89 t.column :book1_id, :integer
90 t.column :book2_id, :integer
91 end
92
93 create_table :clubs, :force => true do |t|
94 t.string :name
95 end
96
97 create_table :colnametests, :force => true do |t|
98 t.integer :references, :null => false
99 end
100
101 create_table :comments, :force => true do |t|
102 t.integer :post_id, :null => false
103 t.text :body, :null => false
104 t.string :type
105 end
106
107 create_table :companies, :force => true do |t|
108 t.string :type
109 t.string :ruby_type
110 t.integer :firm_id
111 t.string :firm_name
112 t.string :name
113 t.integer :client_of
114 t.integer :rating, :default => 1
115 end
116
117 create_table :computers, :force => true do |t|
118 t.integer :developer, :null => false
119 t.integer :extendedWarranty, :null => false
120 end
121
122
123 create_table :customers, :force => true do |t|
124 t.string :name
125 t.integer :balance, :default => 0
126 t.string :address_street
127 t.string :address_city
128 t.string :address_country
129 t.string :gps_location
130 end
131
132 create_table :developers, :force => true do |t|
133 t.string :name
134 t.integer :salary, :default => 70000
135 t.datetime :created_at
136 t.datetime :updated_at
137 end
138
139 create_table :developers_projects, :force => true, :id => false do |t|
140 t.integer :developer_id, :null => false
141 t.integer :project_id, :null => false
142 t.date :joined_on
143 t.integer :access_level, :default => 1
144 end
145
146 create_table :edges, :force => true do |t|
147 t.column :source_id, :integer, :null => false
148 t.column :sink_id, :integer, :null => false
149 end
150 add_index :edges, [:source_id, :sink_id], :unique => true, :name => 'unique_edge_index'
151
152
153 create_table :entrants, :force => true do |t|
154 t.string :name, :null => false
155 t.integer :course_id, :null => false
156 end
157
158 create_table :events, :force => true do |t|
159 t.string :title, :limit => 5
160 end
161
162 create_table :funny_jokes, :force => true do |t|
163 t.string :name
164 end
165
166 create_table :goofy_string_id, :force => true, :id => false do |t|
167 t.string :id, :null => false
168 t.string :info
169 end
170
171 create_table :items, :force => true do |t|
172 t.column :name, :integer
173 end
174
175 create_table :inept_wizards, :force => true do |t|
176 t.column :name, :string, :null => false
177 t.column :city, :string, :null => false
178 t.column :type, :string
179 end
180
181
182 create_table :jobs, :force => true do |t|
183 t.integer :ideal_reference_id
184 end
185
186 create_table :keyboards, :force => true, :id => false do |t|
187 t.primary_key :key_number
188 t.string :name
189 end
190
191 create_table :legacy_things, :force => true do |t|
192 t.integer :tps_report_number
193 t.integer :version, :null => false, :default => 0
194 end
195
196 create_table :lock_without_defaults, :force => true do |t|
197 t.column :lock_version, :integer
198 end
199
200 create_table :lock_without_defaults_cust, :force => true do |t|
201 t.column :custom_lock_version, :integer
202 end
203
204 create_table :mateys, :id => false, :force => true do |t|
205 t.column :pirate_id, :integer
206 t.column :target_id, :integer
207 t.column :weight, :integer
208 end
209
210 create_table :members, :force => true do |t|
211 t.string :name
212 t.integer :member_type_id
213 end
214
215 create_table :member_details, :force => true do |t|
216 t.integer :member_id
217 t.integer :organization_id
218 t.string :extra_data
219 end
220
221 create_table :memberships, :force => true do |t|
222 t.datetime :joined_on
223 t.integer :club_id, :member_id
224 t.boolean :favourite, :default => false
225 t.string :type
226 end
227
228 create_table :member_types, :force => true do |t|
229 t.string :name
230 end
231
232 create_table :references, :force => true do |t|
233 t.integer :person_id
234 t.integer :job_id
235 t.boolean :favourite
236 t.integer :lock_version, :default => 0
237 end
238
239 create_table :minimalistics, :force => true do |t|
240 end
241
242 create_table :mixed_case_monkeys, :force => true, :id => false do |t|
243 t.primary_key :monkeyID
244 t.integer :fleaCount
245 end
246
247 create_table :mixins, :force => true do |t|
248 t.integer :parent_id
249 t.integer :pos
250 t.datetime :created_at
251 t.datetime :updated_at
252 t.integer :lft
253 t.integer :rgt
254 t.integer :root_id
255 t.string :type
256 end
257
258 create_table :movies, :force => true, :id => false do |t|
259 t.primary_key :movieid
260 t.string :name
261 end
262
263 create_table :numeric_data, :force => true do |t|
264 t.decimal :bank_balance, :precision => 10, :scale => 2
265 t.decimal :big_bank_balance, :precision => 15, :scale => 2
266 t.decimal :world_population, :precision => 10, :scale => 0
267 t.decimal :my_house_population, :precision => 2, :scale => 0
268 t.decimal :decimal_number_with_default, :precision => 3, :scale => 2, :default => 2.78
269 t.float :temperature
270 end
271
272 create_table :orders, :force => true do |t|
273 t.string :name
274 t.integer :billing_customer_id
275 t.integer :shipping_customer_id
276 end
277
278 create_table :organizations, :force => true do |t|
279 t.string :name
280 end
281
282 create_table :owners, :primary_key => :owner_id ,:force => true do |t|
283 t.string :name
284 end
285
286
287 create_table :paint_colors, :force => true do |t|
288 t.integer :non_poly_one_id
289 end
290
291 create_table :paint_textures, :force => true do |t|
292 t.integer :non_poly_two_id
293 end
294
295 create_table :parrots, :force => true do |t|
296 t.column :name, :string
297 t.column :parrot_sti_class, :string
298 t.column :killer_id, :integer
299 t.column :created_at, :datetime
300 t.column :created_on, :datetime
301 t.column :updated_at, :datetime
302 t.column :updated_on, :datetime
303 end
304
305 create_table :parrots_pirates, :id => false, :force => true do |t|
306 t.column :parrot_id, :integer
307 t.column :pirate_id, :integer
308 end
309
310 create_table :parrots_treasures, :id => false, :force => true do |t|
311 t.column :parrot_id, :integer
312 t.column :treasure_id, :integer
313 end
314
315 create_table :people, :force => true do |t|
316 t.string :first_name, :null => false
317 t.references :primary_contact
318 t.string :gender, :limit => 1
319 t.integer :lock_version, :null => false, :default => 0
320 end
321
322 create_table :pets, :primary_key => :pet_id ,:force => true do |t|
323 t.string :name
324 t.integer :owner_id, :integer
325 end
326
327 create_table :pirates, :force => true do |t|
328 t.column :catchphrase, :string
329 t.column :parrot_id, :integer
330 t.column :created_on, :datetime
331 t.column :updated_on, :datetime
332 end
333
334 create_table :posts, :force => true do |t|
335 t.integer :author_id
336 t.string :title, :null => false
337 t.text :body, :null => false
338 t.string :type
339 t.integer :comments_count, :default => 0
340 t.integer :taggings_count, :default => 0
341 end
342
343 create_table :price_estimates, :force => true do |t|
344 t.string :estimate_of_type
345 t.integer :estimate_of_id
346 t.integer :price
347 end
348
349 create_table :projects, :force => true do |t|
350 t.string :name
351 t.string :type
352 end
353
354 create_table :readers, :force => true do |t|
355 t.integer :post_id, :null => false
356 t.integer :person_id, :null => false
357 end
358
359 create_table :shape_expressions, :force => true do |t|
360 t.string :paint_type
361 t.integer :paint_id
362 t.string :shape_type
363 t.integer :shape_id
364 end
365
366 create_table :ships, :force => true do |t|
367 t.string :name
368 t.integer :pirate_id
369 t.datetime :created_at
370 t.datetime :created_on
371 t.datetime :updated_at
372 t.datetime :updated_on
373 end
374
375 create_table :ship_parts, :force => true do |t|
376 t.string :name
377 t.integer :ship_id
378 end
379
380 create_table :sponsors, :force => true do |t|
381 t.integer :club_id
382 t.integer :sponsorable_id
383 t.string :sponsorable_type
384 end
385
386 create_table :subscribers, :force => true, :id => false do |t|
387 t.string :nick, :null => false
388 t.string :name
389 end
390 add_index :subscribers, :nick, :unique => true
391
392 create_table :subscriptions, :force => true do |t|
393 t.string :subscriber_id
394 t.integer :book_id
395 end
396
397 create_table :tasks, :force => true do |t|
398 t.datetime :starting
399 t.datetime :ending
400 end
401
402 create_table :topics, :force => true do |t|
403 t.string :title
404 t.string :author_name
405 t.string :author_email_address
406 t.datetime :written_on
407 t.time :bonus_time
408 t.date :last_read
409 t.text :content
410 t.boolean :approved, :default => true
411 t.integer :replies_count, :default => 0
412 t.integer :parent_id
413 t.string :type
414 end
415
416 create_table :taggings, :force => true do |t|
417 t.column :tag_id, :integer
418 t.column :super_tag_id, :integer
419 t.column :taggable_type, :string
420 t.column :taggable_id, :integer
421 end
422
423 create_table :tags, :force => true do |t|
424 t.column :name, :string
425 t.column :taggings_count, :integer, :default => 0
426 end
427
428 create_table :toys, :primary_key => :toy_id ,:force => true do |t|
429 t.string :name
430 t.integer :pet_id, :integer
431 end
432
433 create_table :treasures, :force => true do |t|
434 t.column :name, :string
435 t.column :looter_id, :integer
436 t.column :looter_type, :string
437 end
438
439 create_table :vertices, :force => true do |t|
440 t.column :label, :string
441 end
442
443 create_table 'warehouse-things', :force => true do |t|
444 t.integer :value
445 end
446
447 [:circles, :squares, :triangles, :non_poly_ones, :non_poly_twos].each do |t|
448 create_table(t, :force => true) { }
449 end
450
451 create_table :guids, :force => true do |t|
452 t.column :key, :string
453 end
454
455 create_table :integer_limits, :force => true do |t|
456 t.integer :"c_int_without_limit"
457 (1..8).each do |i|
458 t.integer :"c_int_#{i}", :limit => i
459 end
460 end
461
462 except 'SQLite' do
463 # fk_test_has_fk should be before fk_test_has_pk
464 create_table :fk_test_has_fk, :force => true do |t|
465 t.integer :fk_id, :null => false
466 end
467
468 create_table :fk_test_has_pk, :force => true do |t|
469 end
470
471 execute "ALTER TABLE fk_test_has_fk ADD CONSTRAINT fk_name FOREIGN KEY (#{quote_column_name 'fk_id'}) REFERENCES #{quote_table_name 'fk_test_has_pk'} (#{quote_column_name 'id'})"
472 end
473 end