activerecord_csi 2.3.5.p6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (333) hide show
  1. data/CHANGELOG +5858 -0
  2. data/README +351 -0
  3. data/RUNNING_UNIT_TESTS +36 -0
  4. data/Rakefile +270 -0
  5. data/examples/associations.png +0 -0
  6. data/examples/performance.rb +162 -0
  7. data/install.rb +30 -0
  8. data/lib/active_record/aggregations.rb +261 -0
  9. data/lib/active_record/association_preload.rb +389 -0
  10. data/lib/active_record/associations/association_collection.rb +475 -0
  11. data/lib/active_record/associations/association_proxy.rb +278 -0
  12. data/lib/active_record/associations/belongs_to_association.rb +76 -0
  13. data/lib/active_record/associations/belongs_to_polymorphic_association.rb +53 -0
  14. data/lib/active_record/associations/has_and_belongs_to_many_association.rb +143 -0
  15. data/lib/active_record/associations/has_many_association.rb +122 -0
  16. data/lib/active_record/associations/has_many_through_association.rb +266 -0
  17. data/lib/active_record/associations/has_one_association.rb +133 -0
  18. data/lib/active_record/associations/has_one_through_association.rb +37 -0
  19. data/lib/active_record/associations.rb +2241 -0
  20. data/lib/active_record/attribute_methods.rb +388 -0
  21. data/lib/active_record/autosave_association.rb +364 -0
  22. data/lib/active_record/base.rb +3171 -0
  23. data/lib/active_record/batches.rb +81 -0
  24. data/lib/active_record/calculations.rb +311 -0
  25. data/lib/active_record/callbacks.rb +360 -0
  26. data/lib/active_record/connection_adapters/abstract/connection_pool.rb +371 -0
  27. data/lib/active_record/connection_adapters/abstract/connection_specification.rb +139 -0
  28. data/lib/active_record/connection_adapters/abstract/database_statements.rb +289 -0
  29. data/lib/active_record/connection_adapters/abstract/query_cache.rb +94 -0
  30. data/lib/active_record/connection_adapters/abstract/quoting.rb +69 -0
  31. data/lib/active_record/connection_adapters/abstract/schema_definitions.rb +722 -0
  32. data/lib/active_record/connection_adapters/abstract/schema_statements.rb +434 -0
  33. data/lib/active_record/connection_adapters/abstract_adapter.rb +241 -0
  34. data/lib/active_record/connection_adapters/mysql_adapter.rb +630 -0
  35. data/lib/active_record/connection_adapters/postgresql_adapter.rb +1113 -0
  36. data/lib/active_record/connection_adapters/sqlite3_adapter.rb +34 -0
  37. data/lib/active_record/connection_adapters/sqlite_adapter.rb +453 -0
  38. data/lib/active_record/dirty.rb +183 -0
  39. data/lib/active_record/dynamic_finder_match.rb +41 -0
  40. data/lib/active_record/dynamic_scope_match.rb +25 -0
  41. data/lib/active_record/fixtures.rb +996 -0
  42. data/lib/active_record/i18n_interpolation_deprecation.rb +26 -0
  43. data/lib/active_record/locale/en.yml +58 -0
  44. data/lib/active_record/locking/optimistic.rb +148 -0
  45. data/lib/active_record/locking/pessimistic.rb +55 -0
  46. data/lib/active_record/migration.rb +566 -0
  47. data/lib/active_record/named_scope.rb +192 -0
  48. data/lib/active_record/nested_attributes.rb +392 -0
  49. data/lib/active_record/observer.rb +197 -0
  50. data/lib/active_record/query_cache.rb +33 -0
  51. data/lib/active_record/reflection.rb +320 -0
  52. data/lib/active_record/schema.rb +51 -0
  53. data/lib/active_record/schema_dumper.rb +182 -0
  54. data/lib/active_record/serialization.rb +101 -0
  55. data/lib/active_record/serializers/json_serializer.rb +91 -0
  56. data/lib/active_record/serializers/xml_serializer.rb +357 -0
  57. data/lib/active_record/session_store.rb +326 -0
  58. data/lib/active_record/test_case.rb +66 -0
  59. data/lib/active_record/timestamp.rb +71 -0
  60. data/lib/active_record/transactions.rb +235 -0
  61. data/lib/active_record/validations.rb +1135 -0
  62. data/lib/active_record/version.rb +9 -0
  63. data/lib/active_record.rb +84 -0
  64. data/lib/activerecord.rb +2 -0
  65. data/test/assets/example.log +1 -0
  66. data/test/assets/flowers.jpg +0 -0
  67. data/test/cases/aaa_create_tables_test.rb +24 -0
  68. data/test/cases/active_schema_test_mysql.rb +100 -0
  69. data/test/cases/active_schema_test_postgresql.rb +24 -0
  70. data/test/cases/adapter_test.rb +145 -0
  71. data/test/cases/aggregations_test.rb +167 -0
  72. data/test/cases/ar_schema_test.rb +32 -0
  73. data/test/cases/associations/belongs_to_associations_test.rb +425 -0
  74. data/test/cases/associations/callbacks_test.rb +161 -0
  75. data/test/cases/associations/cascaded_eager_loading_test.rb +131 -0
  76. data/test/cases/associations/eager_load_includes_full_sti_class_test.rb +36 -0
  77. data/test/cases/associations/eager_load_nested_include_test.rb +130 -0
  78. data/test/cases/associations/eager_singularization_test.rb +145 -0
  79. data/test/cases/associations/eager_test.rb +834 -0
  80. data/test/cases/associations/extension_test.rb +62 -0
  81. data/test/cases/associations/habtm_join_table_test.rb +56 -0
  82. data/test/cases/associations/has_and_belongs_to_many_associations_test.rb +822 -0
  83. data/test/cases/associations/has_many_associations_test.rb +1134 -0
  84. data/test/cases/associations/has_many_through_associations_test.rb +346 -0
  85. data/test/cases/associations/has_one_associations_test.rb +330 -0
  86. data/test/cases/associations/has_one_through_associations_test.rb +209 -0
  87. data/test/cases/associations/inner_join_association_test.rb +93 -0
  88. data/test/cases/associations/join_model_test.rb +712 -0
  89. data/test/cases/associations_test.rb +262 -0
  90. data/test/cases/attribute_methods_test.rb +305 -0
  91. data/test/cases/autosave_association_test.rb +1142 -0
  92. data/test/cases/base_test.rb +2154 -0
  93. data/test/cases/batches_test.rb +61 -0
  94. data/test/cases/binary_test.rb +30 -0
  95. data/test/cases/calculations_test.rb +348 -0
  96. data/test/cases/callbacks_observers_test.rb +38 -0
  97. data/test/cases/callbacks_test.rb +438 -0
  98. data/test/cases/class_inheritable_attributes_test.rb +32 -0
  99. data/test/cases/column_alias_test.rb +17 -0
  100. data/test/cases/column_definition_test.rb +70 -0
  101. data/test/cases/connection_pool_test.rb +25 -0
  102. data/test/cases/connection_test_firebird.rb +8 -0
  103. data/test/cases/connection_test_mysql.rb +64 -0
  104. data/test/cases/copy_table_test_sqlite.rb +80 -0
  105. data/test/cases/database_statements_test.rb +12 -0
  106. data/test/cases/datatype_test_postgresql.rb +204 -0
  107. data/test/cases/date_time_test.rb +37 -0
  108. data/test/cases/default_test_firebird.rb +16 -0
  109. data/test/cases/defaults_test.rb +111 -0
  110. data/test/cases/deprecated_finder_test.rb +30 -0
  111. data/test/cases/dirty_test.rb +316 -0
  112. data/test/cases/finder_respond_to_test.rb +76 -0
  113. data/test/cases/finder_test.rb +1066 -0
  114. data/test/cases/fixtures_test.rb +656 -0
  115. data/test/cases/helper.rb +68 -0
  116. data/test/cases/i18n_test.rb +46 -0
  117. data/test/cases/inheritance_test.rb +262 -0
  118. data/test/cases/invalid_date_test.rb +24 -0
  119. data/test/cases/json_serialization_test.rb +205 -0
  120. data/test/cases/lifecycle_test.rb +193 -0
  121. data/test/cases/locking_test.rb +304 -0
  122. data/test/cases/method_scoping_test.rb +704 -0
  123. data/test/cases/migration_test.rb +1523 -0
  124. data/test/cases/migration_test_firebird.rb +124 -0
  125. data/test/cases/mixin_test.rb +96 -0
  126. data/test/cases/modules_test.rb +81 -0
  127. data/test/cases/multiple_db_test.rb +85 -0
  128. data/test/cases/named_scope_test.rb +361 -0
  129. data/test/cases/nested_attributes_test.rb +581 -0
  130. data/test/cases/pk_test.rb +119 -0
  131. data/test/cases/pooled_connections_test.rb +103 -0
  132. data/test/cases/query_cache_test.rb +123 -0
  133. data/test/cases/readonly_test.rb +107 -0
  134. data/test/cases/reflection_test.rb +194 -0
  135. data/test/cases/reload_models_test.rb +22 -0
  136. data/test/cases/repair_helper.rb +50 -0
  137. data/test/cases/reserved_word_test_mysql.rb +176 -0
  138. data/test/cases/sanitize_test.rb +25 -0
  139. data/test/cases/schema_authorization_test_postgresql.rb +75 -0
  140. data/test/cases/schema_dumper_test.rb +211 -0
  141. data/test/cases/schema_test_postgresql.rb +178 -0
  142. data/test/cases/serialization_test.rb +47 -0
  143. data/test/cases/synonym_test_oracle.rb +17 -0
  144. data/test/cases/timestamp_test.rb +75 -0
  145. data/test/cases/transactions_test.rb +522 -0
  146. data/test/cases/unconnected_test.rb +32 -0
  147. data/test/cases/validations_i18n_test.rb +955 -0
  148. data/test/cases/validations_test.rb +1640 -0
  149. data/test/cases/xml_serialization_test.rb +240 -0
  150. data/test/config.rb +5 -0
  151. data/test/connections/jdbc_jdbcderby/connection.rb +18 -0
  152. data/test/connections/jdbc_jdbch2/connection.rb +18 -0
  153. data/test/connections/jdbc_jdbchsqldb/connection.rb +18 -0
  154. data/test/connections/jdbc_jdbcmysql/connection.rb +26 -0
  155. data/test/connections/jdbc_jdbcpostgresql/connection.rb +26 -0
  156. data/test/connections/jdbc_jdbcsqlite3/connection.rb +25 -0
  157. data/test/connections/native_db2/connection.rb +25 -0
  158. data/test/connections/native_firebird/connection.rb +26 -0
  159. data/test/connections/native_frontbase/connection.rb +27 -0
  160. data/test/connections/native_mysql/connection.rb +25 -0
  161. data/test/connections/native_openbase/connection.rb +21 -0
  162. data/test/connections/native_oracle/connection.rb +27 -0
  163. data/test/connections/native_postgresql/connection.rb +25 -0
  164. data/test/connections/native_sqlite/connection.rb +25 -0
  165. data/test/connections/native_sqlite3/connection.rb +25 -0
  166. data/test/connections/native_sqlite3/in_memory_connection.rb +18 -0
  167. data/test/connections/native_sybase/connection.rb +23 -0
  168. data/test/fixtures/accounts.yml +29 -0
  169. data/test/fixtures/all/developers.yml +0 -0
  170. data/test/fixtures/all/people.csv +0 -0
  171. data/test/fixtures/all/tasks.yml +0 -0
  172. data/test/fixtures/author_addresses.yml +5 -0
  173. data/test/fixtures/author_favorites.yml +4 -0
  174. data/test/fixtures/authors.yml +9 -0
  175. data/test/fixtures/binaries.yml +132 -0
  176. data/test/fixtures/books.yml +7 -0
  177. data/test/fixtures/categories/special_categories.yml +9 -0
  178. data/test/fixtures/categories/subsubdir/arbitrary_filename.yml +4 -0
  179. data/test/fixtures/categories.yml +14 -0
  180. data/test/fixtures/categories_ordered.yml +7 -0
  181. data/test/fixtures/categories_posts.yml +23 -0
  182. data/test/fixtures/categorizations.yml +17 -0
  183. data/test/fixtures/clubs.yml +6 -0
  184. data/test/fixtures/comments.yml +59 -0
  185. data/test/fixtures/companies.yml +56 -0
  186. data/test/fixtures/computers.yml +4 -0
  187. data/test/fixtures/courses.yml +7 -0
  188. data/test/fixtures/customers.yml +26 -0
  189. data/test/fixtures/developers.yml +21 -0
  190. data/test/fixtures/developers_projects.yml +17 -0
  191. data/test/fixtures/edges.yml +6 -0
  192. data/test/fixtures/entrants.yml +14 -0
  193. data/test/fixtures/fixture_database.sqlite3 +0 -0
  194. data/test/fixtures/fixture_database_2.sqlite3 +0 -0
  195. data/test/fixtures/fk_test_has_fk.yml +3 -0
  196. data/test/fixtures/fk_test_has_pk.yml +2 -0
  197. data/test/fixtures/funny_jokes.yml +10 -0
  198. data/test/fixtures/items.yml +4 -0
  199. data/test/fixtures/jobs.yml +7 -0
  200. data/test/fixtures/legacy_things.yml +3 -0
  201. data/test/fixtures/mateys.yml +4 -0
  202. data/test/fixtures/member_types.yml +6 -0
  203. data/test/fixtures/members.yml +6 -0
  204. data/test/fixtures/memberships.yml +20 -0
  205. data/test/fixtures/minimalistics.yml +2 -0
  206. data/test/fixtures/mixed_case_monkeys.yml +6 -0
  207. data/test/fixtures/mixins.yml +29 -0
  208. data/test/fixtures/movies.yml +7 -0
  209. data/test/fixtures/naked/csv/accounts.csv +1 -0
  210. data/test/fixtures/naked/yml/accounts.yml +1 -0
  211. data/test/fixtures/naked/yml/companies.yml +1 -0
  212. data/test/fixtures/naked/yml/courses.yml +1 -0
  213. data/test/fixtures/organizations.yml +5 -0
  214. data/test/fixtures/owners.yml +7 -0
  215. data/test/fixtures/parrots.yml +27 -0
  216. data/test/fixtures/parrots_pirates.yml +7 -0
  217. data/test/fixtures/people.yml +15 -0
  218. data/test/fixtures/pets.yml +14 -0
  219. data/test/fixtures/pirates.yml +9 -0
  220. data/test/fixtures/posts.yml +52 -0
  221. data/test/fixtures/price_estimates.yml +7 -0
  222. data/test/fixtures/projects.yml +7 -0
  223. data/test/fixtures/readers.yml +9 -0
  224. data/test/fixtures/references.yml +17 -0
  225. data/test/fixtures/reserved_words/distinct.yml +5 -0
  226. data/test/fixtures/reserved_words/distincts_selects.yml +11 -0
  227. data/test/fixtures/reserved_words/group.yml +14 -0
  228. data/test/fixtures/reserved_words/select.yml +8 -0
  229. data/test/fixtures/reserved_words/values.yml +7 -0
  230. data/test/fixtures/ships.yml +5 -0
  231. data/test/fixtures/sponsors.yml +9 -0
  232. data/test/fixtures/subscribers.yml +7 -0
  233. data/test/fixtures/subscriptions.yml +12 -0
  234. data/test/fixtures/taggings.yml +28 -0
  235. data/test/fixtures/tags.yml +7 -0
  236. data/test/fixtures/tasks.yml +7 -0
  237. data/test/fixtures/topics.yml +42 -0
  238. data/test/fixtures/toys.yml +4 -0
  239. data/test/fixtures/treasures.yml +10 -0
  240. data/test/fixtures/vertices.yml +4 -0
  241. data/test/fixtures/warehouse-things.yml +3 -0
  242. data/test/migrations/broken/100_migration_that_raises_exception.rb +10 -0
  243. data/test/migrations/decimal/1_give_me_big_numbers.rb +15 -0
  244. data/test/migrations/duplicate/1_people_have_last_names.rb +9 -0
  245. data/test/migrations/duplicate/2_we_need_reminders.rb +12 -0
  246. data/test/migrations/duplicate/3_foo.rb +7 -0
  247. data/test/migrations/duplicate/3_innocent_jointable.rb +12 -0
  248. data/test/migrations/duplicate_names/20080507052938_chunky.rb +7 -0
  249. data/test/migrations/duplicate_names/20080507053028_chunky.rb +7 -0
  250. data/test/migrations/interleaved/pass_1/3_innocent_jointable.rb +12 -0
  251. data/test/migrations/interleaved/pass_2/1_people_have_last_names.rb +9 -0
  252. data/test/migrations/interleaved/pass_2/3_innocent_jointable.rb +12 -0
  253. data/test/migrations/interleaved/pass_3/1_people_have_last_names.rb +9 -0
  254. data/test/migrations/interleaved/pass_3/2_i_raise_on_down.rb +8 -0
  255. data/test/migrations/interleaved/pass_3/3_innocent_jointable.rb +12 -0
  256. data/test/migrations/missing/1000_people_have_middle_names.rb +9 -0
  257. data/test/migrations/missing/1_people_have_last_names.rb +9 -0
  258. data/test/migrations/missing/3_we_need_reminders.rb +12 -0
  259. data/test/migrations/missing/4_innocent_jointable.rb +12 -0
  260. data/test/migrations/valid/1_people_have_last_names.rb +9 -0
  261. data/test/migrations/valid/2_we_need_reminders.rb +12 -0
  262. data/test/migrations/valid/3_innocent_jointable.rb +12 -0
  263. data/test/models/author.rb +146 -0
  264. data/test/models/auto_id.rb +4 -0
  265. data/test/models/binary.rb +2 -0
  266. data/test/models/bird.rb +3 -0
  267. data/test/models/book.rb +4 -0
  268. data/test/models/categorization.rb +5 -0
  269. data/test/models/category.rb +34 -0
  270. data/test/models/citation.rb +6 -0
  271. data/test/models/club.rb +13 -0
  272. data/test/models/column_name.rb +3 -0
  273. data/test/models/comment.rb +29 -0
  274. data/test/models/company.rb +171 -0
  275. data/test/models/company_in_module.rb +61 -0
  276. data/test/models/computer.rb +3 -0
  277. data/test/models/contact.rb +16 -0
  278. data/test/models/contract.rb +5 -0
  279. data/test/models/course.rb +3 -0
  280. data/test/models/customer.rb +73 -0
  281. data/test/models/default.rb +2 -0
  282. data/test/models/developer.rb +101 -0
  283. data/test/models/edge.rb +5 -0
  284. data/test/models/entrant.rb +3 -0
  285. data/test/models/essay.rb +3 -0
  286. data/test/models/event.rb +3 -0
  287. data/test/models/guid.rb +2 -0
  288. data/test/models/item.rb +7 -0
  289. data/test/models/job.rb +5 -0
  290. data/test/models/joke.rb +3 -0
  291. data/test/models/keyboard.rb +3 -0
  292. data/test/models/legacy_thing.rb +3 -0
  293. data/test/models/matey.rb +4 -0
  294. data/test/models/member.rb +12 -0
  295. data/test/models/member_detail.rb +5 -0
  296. data/test/models/member_type.rb +3 -0
  297. data/test/models/membership.rb +9 -0
  298. data/test/models/minimalistic.rb +2 -0
  299. data/test/models/mixed_case_monkey.rb +3 -0
  300. data/test/models/movie.rb +5 -0
  301. data/test/models/order.rb +4 -0
  302. data/test/models/organization.rb +6 -0
  303. data/test/models/owner.rb +5 -0
  304. data/test/models/parrot.rb +16 -0
  305. data/test/models/person.rb +16 -0
  306. data/test/models/pet.rb +5 -0
  307. data/test/models/pirate.rb +70 -0
  308. data/test/models/post.rb +100 -0
  309. data/test/models/price_estimate.rb +3 -0
  310. data/test/models/project.rb +30 -0
  311. data/test/models/reader.rb +4 -0
  312. data/test/models/reference.rb +4 -0
  313. data/test/models/reply.rb +46 -0
  314. data/test/models/ship.rb +10 -0
  315. data/test/models/ship_part.rb +5 -0
  316. data/test/models/sponsor.rb +4 -0
  317. data/test/models/subject.rb +4 -0
  318. data/test/models/subscriber.rb +8 -0
  319. data/test/models/subscription.rb +4 -0
  320. data/test/models/tag.rb +7 -0
  321. data/test/models/tagging.rb +10 -0
  322. data/test/models/task.rb +3 -0
  323. data/test/models/topic.rb +80 -0
  324. data/test/models/toy.rb +6 -0
  325. data/test/models/treasure.rb +8 -0
  326. data/test/models/vertex.rb +9 -0
  327. data/test/models/warehouse_thing.rb +5 -0
  328. data/test/schema/mysql_specific_schema.rb +24 -0
  329. data/test/schema/postgresql_specific_schema.rb +114 -0
  330. data/test/schema/schema.rb +493 -0
  331. data/test/schema/schema2.rb +6 -0
  332. data/test/schema/sqlite_specific_schema.rb +25 -0
  333. metadata +420 -0
@@ -0,0 +1,493 @@
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.string :firm_name
27
+ t.integer :credit_limit
28
+ end
29
+
30
+ create_table :audit_logs, :force => true do |t|
31
+ t.column :message, :string, :null=>false
32
+ t.column :developer_id, :integer, :null=>false
33
+ end
34
+
35
+ create_table :authors, :force => true do |t|
36
+ t.string :name, :null => false
37
+ t.integer :author_address_id
38
+ t.integer :author_address_extra_id
39
+ end
40
+
41
+ create_table :author_addresses, :force => true do |t|
42
+ end
43
+
44
+ create_table :author_favorites, :force => true do |t|
45
+ t.column :author_id, :integer
46
+ t.column :favorite_author_id, :integer
47
+ end
48
+
49
+
50
+ create_table :auto_id_tests, :force => true, :id => false do |t|
51
+ t.primary_key :auto_id
52
+ t.integer :value
53
+ end
54
+
55
+ create_table :binaries, :force => true do |t|
56
+ t.binary :data
57
+ end
58
+
59
+ create_table :birds, :force => true do |t|
60
+ t.string :name
61
+ t.integer :pirate_id
62
+ end
63
+
64
+ create_table :books, :force => true do |t|
65
+ t.column :name, :string
66
+ end
67
+
68
+ create_table :booleantests, :force => true do |t|
69
+ t.boolean :value
70
+ end
71
+
72
+ create_table "CamelCase", :force => true do |t|
73
+ t.string :name
74
+ end
75
+
76
+ create_table :categories, :force => true do |t|
77
+ t.string :name, :null => false
78
+ t.string :type
79
+ t.integer :categorizations_count
80
+ end
81
+
82
+ create_table :categories_posts, :force => true, :id => false do |t|
83
+ t.integer :category_id, :null => false
84
+ t.integer :post_id, :null => false
85
+ end
86
+
87
+ create_table :categorizations, :force => true do |t|
88
+ t.column :category_id, :integer
89
+ t.column :post_id, :integer
90
+ t.column :author_id, :integer
91
+ end
92
+
93
+ create_table :citations, :force => true do |t|
94
+ t.column :book1_id, :integer
95
+ t.column :book2_id, :integer
96
+ end
97
+
98
+ create_table :clubs, :force => true do |t|
99
+ t.string :name
100
+ end
101
+
102
+ create_table :colnametests, :force => true do |t|
103
+ t.integer :references, :null => false
104
+ end
105
+
106
+ create_table :comments, :force => true do |t|
107
+ t.integer :post_id, :null => false
108
+ t.text :body, :null => false
109
+ t.string :type
110
+ end
111
+
112
+ create_table :companies, :force => true do |t|
113
+ t.string :type
114
+ t.string :ruby_type
115
+ t.integer :firm_id
116
+ t.string :firm_name
117
+ t.string :name
118
+ t.integer :client_of
119
+ t.integer :rating, :default => 1
120
+ end
121
+
122
+ add_index :companies, [:firm_id, :type, :rating, :ruby_type], :name => "company_index"
123
+
124
+ create_table :computers, :force => true do |t|
125
+ t.integer :developer, :null => false
126
+ t.integer :extendedWarranty, :null => false
127
+ end
128
+
129
+ create_table :contracts, :force => true do |t|
130
+ t.integer :developer_id
131
+ t.integer :company_id
132
+ end
133
+
134
+ create_table :customers, :force => true do |t|
135
+ t.string :name
136
+ t.integer :balance, :default => 0
137
+ t.string :address_street
138
+ t.string :address_city
139
+ t.string :address_country
140
+ t.string :gps_location
141
+ end
142
+
143
+ create_table :developers, :force => true do |t|
144
+ t.string :name
145
+ t.integer :salary, :default => 70000
146
+ t.datetime :created_at
147
+ t.datetime :updated_at
148
+ end
149
+
150
+ create_table :developers_projects, :force => true, :id => false do |t|
151
+ t.integer :developer_id, :null => false
152
+ t.integer :project_id, :null => false
153
+ t.date :joined_on
154
+ t.integer :access_level, :default => 1
155
+ end
156
+
157
+ create_table :edges, :force => true do |t|
158
+ t.column :source_id, :integer, :null => false
159
+ t.column :sink_id, :integer, :null => false
160
+ end
161
+ add_index :edges, [:source_id, :sink_id], :unique => true, :name => 'unique_edge_index'
162
+
163
+
164
+ create_table :entrants, :force => true do |t|
165
+ t.string :name, :null => false
166
+ t.integer :course_id, :null => false
167
+ end
168
+
169
+ create_table :essays, :force => true do |t|
170
+ t.string :name
171
+ t.string :writer_id
172
+ t.string :writer_type
173
+ end
174
+
175
+ create_table :events, :force => true do |t|
176
+ t.string :title, :limit => 5
177
+ end
178
+
179
+ create_table :funny_jokes, :force => true do |t|
180
+ t.string :name
181
+ end
182
+
183
+ create_table :goofy_string_id, :force => true, :id => false do |t|
184
+ t.string :id, :null => false
185
+ t.string :info
186
+ end
187
+
188
+ create_table :items, :force => true do |t|
189
+ t.column :name, :integer
190
+ end
191
+
192
+ create_table :inept_wizards, :force => true do |t|
193
+ t.column :name, :string, :null => false
194
+ t.column :city, :string, :null => false
195
+ t.column :type, :string
196
+ end
197
+
198
+
199
+ create_table :jobs, :force => true do |t|
200
+ t.integer :ideal_reference_id
201
+ end
202
+
203
+ create_table :keyboards, :force => true, :id => false do |t|
204
+ t.primary_key :key_number
205
+ t.string :name
206
+ end
207
+
208
+ create_table :legacy_things, :force => true do |t|
209
+ t.integer :tps_report_number
210
+ t.integer :version, :null => false, :default => 0
211
+ end
212
+
213
+ create_table :lock_without_defaults, :force => true do |t|
214
+ t.column :lock_version, :integer
215
+ end
216
+
217
+ create_table :lock_without_defaults_cust, :force => true do |t|
218
+ t.column :custom_lock_version, :integer
219
+ end
220
+
221
+ create_table :mateys, :id => false, :force => true do |t|
222
+ t.column :pirate_id, :integer
223
+ t.column :target_id, :integer
224
+ t.column :weight, :integer
225
+ end
226
+
227
+ create_table :members, :force => true do |t|
228
+ t.string :name
229
+ t.integer :member_type_id
230
+ end
231
+
232
+ create_table :member_details, :force => true do |t|
233
+ t.integer :member_id
234
+ t.integer :organization_id
235
+ t.string :extra_data
236
+ end
237
+
238
+ create_table :memberships, :force => true do |t|
239
+ t.datetime :joined_on
240
+ t.integer :club_id, :member_id
241
+ t.boolean :favourite, :default => false
242
+ t.string :type
243
+ end
244
+
245
+ create_table :member_types, :force => true do |t|
246
+ t.string :name
247
+ end
248
+
249
+ create_table :references, :force => true do |t|
250
+ t.integer :person_id
251
+ t.integer :job_id
252
+ t.boolean :favourite
253
+ t.integer :lock_version, :default => 0
254
+ end
255
+
256
+ create_table :minimalistics, :force => true do |t|
257
+ end
258
+
259
+ create_table :mixed_case_monkeys, :force => true, :id => false do |t|
260
+ t.primary_key :monkeyID
261
+ t.integer :fleaCount
262
+ end
263
+
264
+ create_table :mixins, :force => true do |t|
265
+ t.integer :parent_id
266
+ t.integer :pos
267
+ t.datetime :created_at
268
+ t.datetime :updated_at
269
+ t.integer :lft
270
+ t.integer :rgt
271
+ t.integer :root_id
272
+ t.string :type
273
+ end
274
+
275
+ create_table :movies, :force => true, :id => false do |t|
276
+ t.primary_key :movieid
277
+ t.string :name
278
+ end
279
+
280
+ create_table :numeric_data, :force => true do |t|
281
+ t.decimal :bank_balance, :precision => 10, :scale => 2
282
+ t.decimal :big_bank_balance, :precision => 15, :scale => 2
283
+ t.decimal :world_population, :precision => 10, :scale => 0
284
+ t.decimal :my_house_population, :precision => 2, :scale => 0
285
+ t.decimal :decimal_number_with_default, :precision => 3, :scale => 2, :default => 2.78
286
+ t.float :temperature
287
+ end
288
+
289
+ create_table :orders, :force => true do |t|
290
+ t.string :name
291
+ t.integer :billing_customer_id
292
+ t.integer :shipping_customer_id
293
+ end
294
+
295
+ create_table :organizations, :force => true do |t|
296
+ t.string :name
297
+ end
298
+
299
+ create_table :owners, :primary_key => :owner_id ,:force => true do |t|
300
+ t.string :name
301
+ t.column :updated_at, :datetime
302
+ t.column :happy_at, :datetime
303
+ end
304
+
305
+
306
+ create_table :paint_colors, :force => true do |t|
307
+ t.integer :non_poly_one_id
308
+ end
309
+
310
+ create_table :paint_textures, :force => true do |t|
311
+ t.integer :non_poly_two_id
312
+ end
313
+
314
+ create_table :parrots, :force => true do |t|
315
+ t.column :name, :string
316
+ t.column :parrot_sti_class, :string
317
+ t.column :killer_id, :integer
318
+ t.column :created_at, :datetime
319
+ t.column :created_on, :datetime
320
+ t.column :updated_at, :datetime
321
+ t.column :updated_on, :datetime
322
+ end
323
+
324
+ create_table :parrots_pirates, :id => false, :force => true do |t|
325
+ t.column :parrot_id, :integer
326
+ t.column :pirate_id, :integer
327
+ end
328
+
329
+ create_table :parrots_treasures, :id => false, :force => true do |t|
330
+ t.column :parrot_id, :integer
331
+ t.column :treasure_id, :integer
332
+ end
333
+
334
+ create_table :people, :force => true do |t|
335
+ t.string :first_name, :null => false
336
+ t.references :primary_contact
337
+ t.string :gender, :limit => 1
338
+ t.integer :lock_version, :null => false, :default => 0
339
+ end
340
+
341
+ create_table :pets, :primary_key => :pet_id ,:force => true do |t|
342
+ t.string :name
343
+ t.integer :owner_id, :integer
344
+ end
345
+
346
+ create_table :pirates, :force => true do |t|
347
+ t.column :catchphrase, :string
348
+ t.column :parrot_id, :integer
349
+ t.column :created_on, :datetime
350
+ t.column :updated_on, :datetime
351
+ end
352
+
353
+ create_table :posts, :force => true do |t|
354
+ t.integer :author_id
355
+ t.string :title, :null => false
356
+ t.text :body, :null => false
357
+ t.string :type
358
+ t.integer :comments_count, :default => 0
359
+ t.integer :taggings_count, :default => 0
360
+ end
361
+
362
+ create_table :price_estimates, :force => true do |t|
363
+ t.string :estimate_of_type
364
+ t.integer :estimate_of_id
365
+ t.integer :price
366
+ end
367
+
368
+ create_table :projects, :force => true do |t|
369
+ t.string :name
370
+ t.string :type
371
+ end
372
+
373
+ create_table :readers, :force => true do |t|
374
+ t.integer :post_id, :null => false
375
+ t.integer :person_id, :null => false
376
+ end
377
+
378
+ create_table :shape_expressions, :force => true do |t|
379
+ t.string :paint_type
380
+ t.integer :paint_id
381
+ t.string :shape_type
382
+ t.integer :shape_id
383
+ end
384
+
385
+ create_table :ships, :force => true do |t|
386
+ t.string :name
387
+ t.integer :pirate_id
388
+ t.datetime :created_at
389
+ t.datetime :created_on
390
+ t.datetime :updated_at
391
+ t.datetime :updated_on
392
+ end
393
+
394
+ create_table :ship_parts, :force => true do |t|
395
+ t.string :name
396
+ t.integer :ship_id
397
+ end
398
+
399
+ create_table :sponsors, :force => true do |t|
400
+ t.integer :club_id
401
+ t.integer :sponsorable_id
402
+ t.string :sponsorable_type
403
+ end
404
+
405
+ create_table :subscribers, :force => true, :id => false do |t|
406
+ t.string :nick, :null => false
407
+ t.string :name
408
+ end
409
+ add_index :subscribers, :nick, :unique => true
410
+
411
+ create_table :subscriptions, :force => true do |t|
412
+ t.string :subscriber_id
413
+ t.integer :book_id
414
+ end
415
+
416
+ create_table :tasks, :force => true do |t|
417
+ t.datetime :starting
418
+ t.datetime :ending
419
+ end
420
+
421
+ create_table :topics, :force => true do |t|
422
+ t.string :title
423
+ t.string :author_name
424
+ t.string :author_email_address
425
+ t.datetime :written_on
426
+ t.time :bonus_time
427
+ t.date :last_read
428
+ t.text :content
429
+ t.boolean :approved, :default => true
430
+ t.integer :replies_count, :default => 0
431
+ t.integer :parent_id
432
+ t.string :parent_title
433
+ t.string :type
434
+ end
435
+
436
+ create_table :taggings, :force => true do |t|
437
+ t.column :tag_id, :integer
438
+ t.column :super_tag_id, :integer
439
+ t.column :taggable_type, :string
440
+ t.column :taggable_id, :integer
441
+ end
442
+
443
+ create_table :tags, :force => true do |t|
444
+ t.column :name, :string
445
+ t.column :taggings_count, :integer, :default => 0
446
+ end
447
+
448
+ create_table :toys, :primary_key => :toy_id ,:force => true do |t|
449
+ t.string :name
450
+ t.integer :pet_id, :integer
451
+ end
452
+
453
+ create_table :treasures, :force => true do |t|
454
+ t.column :name, :string
455
+ t.column :looter_id, :integer
456
+ t.column :looter_type, :string
457
+ end
458
+
459
+ create_table :vertices, :force => true do |t|
460
+ t.column :label, :string
461
+ end
462
+
463
+ create_table 'warehouse-things', :force => true do |t|
464
+ t.integer :value
465
+ end
466
+
467
+ [:circles, :squares, :triangles, :non_poly_ones, :non_poly_twos].each do |t|
468
+ create_table(t, :force => true) { }
469
+ end
470
+
471
+ create_table :guids, :force => true do |t|
472
+ t.column :key, :string
473
+ end
474
+
475
+ create_table :integer_limits, :force => true do |t|
476
+ t.integer :"c_int_without_limit"
477
+ (1..8).each do |i|
478
+ t.integer :"c_int_#{i}", :limit => i
479
+ end
480
+ end
481
+
482
+ except 'SQLite' do
483
+ # fk_test_has_fk should be before fk_test_has_pk
484
+ create_table :fk_test_has_fk, :force => true do |t|
485
+ t.integer :fk_id, :null => false
486
+ end
487
+
488
+ create_table :fk_test_has_pk, :force => true do |t|
489
+ end
490
+
491
+ 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'})"
492
+ end
493
+ end
@@ -0,0 +1,6 @@
1
+ ActiveRecord::Schema.define do
2
+
3
+ Course.connection.create_table :courses, :force => true do |t|
4
+ t.column :name, :string, :null => false
5
+ end
6
+ end
@@ -0,0 +1,25 @@
1
+ ActiveRecord::Schema.define do
2
+ # For sqlite 3.1.0+, make a table with a autoincrement column
3
+ if supports_autoincrement?
4
+ create_table :table_with_autoincrement, :force => true do |t|
5
+ t.column :name, :string
6
+ end
7
+ end
8
+
9
+ execute "DROP TABLE fk_test_has_fk" rescue nil
10
+ execute "DROP TABLE fk_test_has_pk" rescue nil
11
+ execute <<_SQL
12
+ CREATE TABLE 'fk_test_has_pk' (
13
+ 'id' INTEGER NOT NULL PRIMARY KEY
14
+ );
15
+ _SQL
16
+
17
+ execute <<_SQL
18
+ CREATE TABLE 'fk_test_has_fk' (
19
+ 'id' INTEGER NOT NULL PRIMARY KEY,
20
+ 'fk_id' INTEGER NOT NULL,
21
+
22
+ FOREIGN KEY ('fk_id') REFERENCES 'fk_test_has_pk'('id')
23
+ );
24
+ _SQL
25
+ end