ibm_db 3.0.5 → 4.0.0

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 (580) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES +4 -0
  3. data/LICENSE +1 -1
  4. data/MANIFEST +14 -14
  5. data/ParameterizedQueries README +6 -6
  6. data/README +208 -225
  7. data/ext/Makefile.nt32 +181 -181
  8. data/ext/Makefile.nt32.191 +212 -212
  9. data/ext/extconf.rb +291 -291
  10. data/ext/ibm_db.c +11887 -11887
  11. data/ext/ruby_ibm_db.h +241 -241
  12. data/ext/ruby_ibm_db_cli.c +866 -866
  13. data/ext/ruby_ibm_db_cli.h +500 -500
  14. data/init.rb +41 -41
  15. data/lib/IBM_DB.rb +27 -27
  16. data/lib/active_record/connection_adapters/ibm_db_adapter.rb +3452 -3177
  17. data/lib/active_record/connection_adapters/ibmdb_adapter.rb +5 -2
  18. data/lib/active_record/vendor/db2-i5-zOS.yaml +328 -328
  19. data/test/active_record/connection_adapters/fake_adapter.rb +49 -46
  20. data/test/assets/example.log +1 -1
  21. data/test/assets/test.txt +1 -1
  22. data/test/cases/adapter_test.rb +351 -276
  23. data/test/cases/adapters/mysql2/active_schema_test.rb +193 -0
  24. data/test/cases/adapters/mysql2/bind_parameter_test.rb +50 -0
  25. data/test/cases/adapters/mysql2/boolean_test.rb +100 -0
  26. data/test/cases/adapters/mysql2/case_sensitivity_test.rb +63 -0
  27. data/test/cases/adapters/mysql2/charset_collation_test.rb +54 -0
  28. data/test/cases/adapters/mysql2/connection_test.rb +210 -0
  29. data/test/cases/adapters/mysql2/datetime_precision_quoting_test.rb +45 -0
  30. data/test/cases/adapters/mysql2/enum_test.rb +26 -0
  31. data/test/cases/adapters/mysql2/explain_test.rb +21 -0
  32. data/test/cases/adapters/mysql2/json_test.rb +195 -0
  33. data/test/cases/adapters/mysql2/mysql2_adapter_test.rb +83 -0
  34. data/test/cases/adapters/mysql2/reserved_word_test.rb +152 -0
  35. data/test/cases/adapters/mysql2/schema_migrations_test.rb +59 -0
  36. data/test/cases/adapters/mysql2/schema_test.rb +126 -0
  37. data/test/cases/adapters/mysql2/sp_test.rb +36 -0
  38. data/test/cases/adapters/mysql2/sql_types_test.rb +14 -0
  39. data/test/cases/adapters/mysql2/table_options_test.rb +42 -0
  40. data/test/cases/adapters/mysql2/unsigned_type_test.rb +66 -0
  41. data/test/cases/adapters/postgresql/active_schema_test.rb +98 -0
  42. data/test/cases/adapters/postgresql/array_test.rb +339 -0
  43. data/test/cases/adapters/postgresql/bit_string_test.rb +82 -0
  44. data/test/cases/adapters/postgresql/bytea_test.rb +134 -0
  45. data/test/cases/adapters/postgresql/case_insensitive_test.rb +26 -0
  46. data/test/cases/adapters/postgresql/change_schema_test.rb +38 -0
  47. data/test/cases/adapters/postgresql/cidr_test.rb +25 -0
  48. data/test/cases/adapters/postgresql/citext_test.rb +78 -0
  49. data/test/cases/adapters/postgresql/collation_test.rb +53 -0
  50. data/test/cases/adapters/postgresql/composite_test.rb +132 -0
  51. data/test/cases/adapters/postgresql/connection_test.rb +257 -0
  52. data/test/cases/adapters/postgresql/datatype_test.rb +92 -0
  53. data/test/cases/adapters/postgresql/domain_test.rb +47 -0
  54. data/test/cases/adapters/postgresql/enum_test.rb +91 -0
  55. data/test/cases/adapters/postgresql/explain_test.rb +20 -0
  56. data/test/cases/adapters/postgresql/extension_migration_test.rb +63 -0
  57. data/test/cases/adapters/postgresql/full_text_test.rb +44 -0
  58. data/test/cases/adapters/postgresql/geometric_test.rb +378 -0
  59. data/test/cases/adapters/postgresql/hstore_test.rb +382 -0
  60. data/test/cases/adapters/postgresql/infinity_test.rb +69 -0
  61. data/test/cases/adapters/postgresql/integer_test.rb +25 -0
  62. data/test/cases/adapters/postgresql/json_test.rb +237 -0
  63. data/test/cases/adapters/postgresql/ltree_test.rb +53 -0
  64. data/test/cases/adapters/postgresql/money_test.rb +96 -0
  65. data/test/cases/adapters/postgresql/network_test.rb +94 -0
  66. data/test/cases/adapters/postgresql/numbers_test.rb +49 -0
  67. data/test/cases/adapters/postgresql/postgresql_adapter_test.rb +405 -0
  68. data/test/cases/adapters/postgresql/prepared_statements_test.rb +22 -0
  69. data/test/cases/adapters/postgresql/quoting_test.rb +44 -0
  70. data/test/cases/adapters/postgresql/range_test.rb +343 -0
  71. data/test/cases/adapters/postgresql/referential_integrity_test.rb +111 -0
  72. data/test/cases/adapters/postgresql/rename_table_test.rb +34 -0
  73. data/test/cases/adapters/postgresql/schema_authorization_test.rb +119 -0
  74. data/test/cases/adapters/postgresql/schema_test.rb +597 -0
  75. data/test/cases/adapters/postgresql/serial_test.rb +154 -0
  76. data/test/cases/adapters/postgresql/statement_pool_test.rb +41 -0
  77. data/test/cases/adapters/postgresql/timestamp_test.rb +90 -0
  78. data/test/cases/adapters/postgresql/type_lookup_test.rb +33 -0
  79. data/test/cases/adapters/postgresql/utils_test.rb +62 -0
  80. data/test/cases/adapters/postgresql/uuid_test.rb +294 -0
  81. data/test/cases/adapters/postgresql/xml_test.rb +54 -0
  82. data/test/cases/adapters/sqlite3/collation_test.rb +53 -0
  83. data/test/cases/adapters/sqlite3/copy_table_test.rb +98 -0
  84. data/test/cases/adapters/sqlite3/explain_test.rb +21 -0
  85. data/test/cases/adapters/sqlite3/quoting_test.rb +101 -0
  86. data/test/cases/adapters/sqlite3/sqlite3_adapter_test.rb +441 -0
  87. data/test/cases/adapters/sqlite3/sqlite3_create_folder_test.rb +24 -0
  88. data/test/cases/adapters/sqlite3/statement_pool_test.rb +20 -0
  89. data/test/cases/aggregations_test.rb +168 -158
  90. data/test/cases/ar_schema_test.rb +146 -161
  91. data/test/cases/associations/association_scope_test.rb +16 -21
  92. data/test/cases/associations/belongs_to_associations_test.rb +1141 -1029
  93. data/test/cases/associations/bidirectional_destroy_dependencies_test.rb +41 -0
  94. data/test/cases/associations/callbacks_test.rb +190 -192
  95. data/test/cases/associations/cascaded_eager_loading_test.rb +188 -188
  96. data/test/cases/associations/eager_load_includes_full_sti_class_test.rb +36 -36
  97. data/test/cases/associations/eager_load_nested_include_test.rb +126 -128
  98. data/test/cases/associations/eager_singularization_test.rb +148 -148
  99. data/test/cases/associations/eager_test.rb +1514 -1429
  100. data/test/cases/associations/extension_test.rb +87 -82
  101. data/test/cases/associations/has_and_belongs_to_many_associations_test.rb +1004 -972
  102. data/test/cases/associations/has_many_associations_test.rb +2501 -2182
  103. data/test/cases/associations/has_many_through_associations_test.rb +1271 -1204
  104. data/test/cases/associations/has_one_associations_test.rb +707 -610
  105. data/test/cases/associations/has_one_through_associations_test.rb +383 -380
  106. data/test/cases/associations/inner_join_association_test.rb +139 -139
  107. data/test/cases/associations/inverse_associations_test.rb +733 -706
  108. data/test/cases/associations/join_model_test.rb +777 -754
  109. data/test/cases/associations/left_outer_join_association_test.rb +88 -0
  110. data/test/cases/associations/nested_through_associations_test.rb +579 -579
  111. data/test/cases/associations/required_test.rb +102 -82
  112. data/test/cases/associations_test.rb +385 -380
  113. data/test/cases/attribute_decorators_test.rb +125 -125
  114. data/test/cases/attribute_methods/read_test.rb +60 -60
  115. data/test/cases/attribute_methods_test.rb +1009 -952
  116. data/test/cases/attribute_set_test.rb +270 -210
  117. data/test/cases/attribute_test.rb +246 -180
  118. data/test/cases/attributes_test.rb +253 -136
  119. data/test/cases/autosave_association_test.rb +1708 -1595
  120. data/test/cases/base_test.rb +1713 -1664
  121. data/test/cases/batches_test.rb +489 -212
  122. data/test/cases/binary_test.rb +44 -52
  123. data/test/cases/bind_parameter_test.rb +110 -100
  124. data/test/cases/cache_key_test.rb +25 -0
  125. data/test/cases/calculations_test.rb +798 -646
  126. data/test/cases/callbacks_test.rb +636 -543
  127. data/test/cases/clone_test.rb +40 -40
  128. data/test/cases/coders/json_test.rb +15 -0
  129. data/test/cases/coders/yaml_column_test.rb +63 -63
  130. data/test/cases/collection_cache_key_test.rb +115 -0
  131. data/test/cases/column_alias_test.rb +17 -17
  132. data/test/cases/column_definition_test.rb +92 -123
  133. data/test/cases/comment_test.rb +143 -0
  134. data/test/cases/connection_adapters/adapter_leasing_test.rb +56 -54
  135. data/test/cases/connection_adapters/connection_handler_test.rb +160 -53
  136. data/test/cases/connection_adapters/connection_specification_test.rb +12 -12
  137. data/test/cases/connection_adapters/merge_and_resolve_default_url_config_test.rb +255 -293
  138. data/test/cases/connection_adapters/mysql_type_lookup_test.rb +69 -65
  139. data/test/cases/connection_adapters/quoting_test.rb +13 -13
  140. data/test/cases/connection_adapters/schema_cache_test.rb +61 -56
  141. data/test/cases/connection_adapters/type_lookup_test.rb +118 -110
  142. data/test/cases/connection_management_test.rb +112 -122
  143. data/test/cases/connection_pool_test.rb +521 -346
  144. data/test/cases/connection_specification/resolver_test.rb +131 -116
  145. data/test/cases/core_test.rb +112 -112
  146. data/test/cases/counter_cache_test.rb +214 -209
  147. data/test/cases/custom_locking_test.rb +17 -17
  148. data/test/cases/database_statements_test.rb +34 -19
  149. data/test/cases/{invalid_date_test.rb → date_test.rb} +44 -32
  150. data/test/cases/date_time_precision_test.rb +106 -0
  151. data/test/cases/date_time_test.rb +61 -61
  152. data/test/cases/defaults_test.rb +218 -223
  153. data/test/cases/dirty_test.rb +763 -785
  154. data/test/cases/disconnected_test.rb +30 -28
  155. data/test/cases/dup_test.rb +157 -157
  156. data/test/cases/enum_test.rb +444 -290
  157. data/test/cases/errors_test.rb +16 -0
  158. data/test/cases/explain_subscriber_test.rb +64 -64
  159. data/test/cases/explain_test.rb +87 -76
  160. data/test/cases/finder_respond_to_test.rb +60 -60
  161. data/test/cases/finder_test.rb +1294 -1169
  162. data/test/cases/fixture_set/file_test.rb +156 -138
  163. data/test/cases/fixtures_test.rb +988 -908
  164. data/test/cases/forbidden_attributes_protection_test.rb +165 -99
  165. data/test/cases/habtm_destroy_order_test.rb +61 -61
  166. data/test/cases/helper.rb +204 -210
  167. data/test/cases/hot_compatibility_test.rb +142 -54
  168. data/test/cases/i18n_test.rb +45 -45
  169. data/test/cases/inheritance_test.rb +606 -375
  170. data/test/cases/integration_test.rb +155 -139
  171. data/test/cases/invalid_connection_test.rb +24 -22
  172. data/test/cases/invertible_migration_test.rb +387 -295
  173. data/test/cases/json_serialization_test.rb +311 -302
  174. data/test/cases/locking_test.rb +493 -477
  175. data/test/cases/log_subscriber_test.rb +225 -136
  176. data/test/cases/migration/change_schema_test.rb +458 -512
  177. data/test/cases/migration/change_table_test.rb +256 -224
  178. data/test/cases/migration/column_attributes_test.rb +176 -192
  179. data/test/cases/migration/column_positioning_test.rb +56 -56
  180. data/test/cases/migration/columns_test.rb +310 -304
  181. data/test/cases/migration/command_recorder_test.rb +350 -305
  182. data/test/cases/migration/compatibility_test.rb +118 -0
  183. data/test/cases/migration/create_join_table_test.rb +157 -148
  184. data/test/cases/migration/foreign_key_test.rb +360 -328
  185. data/test/cases/migration/helper.rb +39 -39
  186. data/test/cases/migration/index_test.rb +218 -216
  187. data/test/cases/migration/logger_test.rb +36 -36
  188. data/test/cases/migration/pending_migrations_test.rb +52 -53
  189. data/test/cases/migration/references_foreign_key_test.rb +216 -169
  190. data/test/cases/migration/references_index_test.rb +101 -101
  191. data/test/cases/migration/references_statements_test.rb +136 -116
  192. data/test/cases/migration/rename_table_test.rb +93 -93
  193. data/test/cases/migration_test.rb +1157 -959
  194. data/test/cases/migrator_test.rb +470 -388
  195. data/test/cases/mixin_test.rb +68 -70
  196. data/test/cases/modules_test.rb +172 -173
  197. data/test/cases/multiparameter_attributes_test.rb +372 -350
  198. data/test/cases/multiple_db_test.rb +122 -115
  199. data/test/cases/nested_attributes_test.rb +1098 -1070
  200. data/test/cases/nested_attributes_with_callbacks_test.rb +144 -144
  201. data/test/cases/persistence_test.rb +1001 -909
  202. data/test/cases/pooled_connections_test.rb +81 -81
  203. data/test/cases/primary_keys_test.rb +376 -237
  204. data/test/cases/query_cache_test.rb +446 -326
  205. data/test/cases/quoting_test.rb +202 -156
  206. data/test/cases/readonly_test.rb +119 -118
  207. data/test/cases/reaper_test.rb +85 -85
  208. data/test/cases/reflection_test.rb +509 -463
  209. data/test/cases/relation/delegation_test.rb +63 -68
  210. data/test/cases/relation/merging_test.rb +157 -161
  211. data/test/cases/relation/mutation_test.rb +183 -165
  212. data/test/cases/relation/or_test.rb +92 -0
  213. data/test/cases/relation/predicate_builder_test.rb +16 -14
  214. data/test/cases/relation/record_fetch_warning_test.rb +40 -0
  215. data/test/cases/relation/where_chain_test.rb +105 -181
  216. data/test/cases/relation/where_clause_test.rb +182 -0
  217. data/test/cases/relation/where_test.rb +322 -300
  218. data/test/cases/relation_test.rb +328 -319
  219. data/test/cases/relations_test.rb +2026 -1815
  220. data/test/cases/reload_models_test.rb +22 -22
  221. data/test/cases/result_test.rb +90 -80
  222. data/test/cases/sanitize_test.rb +176 -83
  223. data/test/cases/schema_dumper_test.rb +457 -463
  224. data/test/cases/schema_loading_test.rb +52 -0
  225. data/test/cases/scoping/default_scoping_test.rb +528 -454
  226. data/test/cases/scoping/named_scoping_test.rb +561 -524
  227. data/test/cases/scoping/relation_scoping_test.rb +400 -357
  228. data/test/cases/secure_token_test.rb +32 -0
  229. data/test/cases/serialization_test.rb +104 -104
  230. data/test/cases/serialized_attribute_test.rb +364 -277
  231. data/test/cases/statement_cache_test.rb +136 -98
  232. data/test/cases/store_test.rb +195 -194
  233. data/test/cases/suppressor_test.rb +63 -0
  234. data/test/cases/tasks/database_tasks_test.rb +462 -398
  235. data/test/cases/tasks/mysql_rake_test.rb +345 -324
  236. data/test/cases/tasks/postgresql_rake_test.rb +304 -250
  237. data/test/cases/tasks/sqlite_rake_test.rb +220 -193
  238. data/test/cases/test_case.rb +131 -123
  239. data/test/cases/test_fixtures_test.rb +36 -0
  240. data/test/cases/time_precision_test.rb +102 -0
  241. data/test/cases/timestamp_test.rb +501 -467
  242. data/test/cases/touch_later_test.rb +121 -0
  243. data/test/cases/transaction_callbacks_test.rb +518 -452
  244. data/test/cases/transaction_isolation_test.rb +106 -106
  245. data/test/cases/transactions_test.rb +834 -817
  246. data/test/cases/type/adapter_specific_registry_test.rb +133 -0
  247. data/test/cases/type/date_time_test.rb +14 -0
  248. data/test/cases/type/integer_test.rb +27 -121
  249. data/test/cases/type/string_test.rb +22 -36
  250. data/test/cases/type/type_map_test.rb +177 -177
  251. data/test/cases/type_test.rb +39 -0
  252. data/test/cases/types_test.rb +24 -141
  253. data/test/cases/unconnected_test.rb +33 -33
  254. data/test/cases/validations/absence_validation_test.rb +73 -0
  255. data/test/cases/validations/association_validation_test.rb +97 -86
  256. data/test/cases/validations/i18n_generate_message_validation_test.rb +84 -84
  257. data/test/cases/validations/i18n_validation_test.rb +86 -90
  258. data/test/cases/validations/length_validation_test.rb +79 -47
  259. data/test/cases/validations/presence_validation_test.rb +103 -68
  260. data/test/cases/validations/uniqueness_validation_test.rb +548 -457
  261. data/test/cases/validations_repair_helper.rb +19 -23
  262. data/test/cases/validations_test.rb +194 -165
  263. data/test/cases/view_test.rb +216 -119
  264. data/test/cases/yaml_serialization_test.rb +121 -126
  265. data/test/config.example.yml +97 -0
  266. data/test/config.rb +5 -5
  267. data/test/fixtures/accounts.yml +29 -29
  268. data/test/fixtures/admin/accounts.yml +2 -2
  269. data/test/fixtures/admin/users.yml +10 -10
  270. data/test/fixtures/author_addresses.original +11 -0
  271. data/test/fixtures/author_addresses.yml +17 -17
  272. data/test/fixtures/author_favorites.yml +3 -3
  273. data/test/fixtures/authors.original +17 -0
  274. data/test/fixtures/authors.yml +23 -23
  275. data/test/fixtures/bad_posts.yml +9 -0
  276. data/test/fixtures/binaries.yml +133 -133
  277. data/test/fixtures/books.yml +31 -11
  278. data/test/fixtures/bulbs.yml +5 -5
  279. data/test/fixtures/cars.yml +9 -9
  280. data/test/fixtures/categories.yml +19 -19
  281. data/test/fixtures/categories/special_categories.yml +9 -9
  282. data/test/fixtures/categories/subsubdir/arbitrary_filename.yml +4 -4
  283. data/test/fixtures/categories_ordered.yml +7 -7
  284. data/test/fixtures/categories_posts.yml +31 -31
  285. data/test/fixtures/categorizations.yml +23 -23
  286. data/test/fixtures/clubs.yml +8 -8
  287. data/test/fixtures/collections.yml +3 -3
  288. data/test/fixtures/colleges.yml +3 -3
  289. data/test/fixtures/comments.yml +65 -65
  290. data/test/fixtures/companies.yml +67 -67
  291. data/test/fixtures/computers.yml +10 -10
  292. data/test/fixtures/content.yml +3 -0
  293. data/test/fixtures/content_positions.yml +3 -0
  294. data/test/fixtures/courses.yml +8 -8
  295. data/test/fixtures/customers.yml +25 -25
  296. data/test/fixtures/dashboards.yml +6 -6
  297. data/test/fixtures/dead_parrots.yml +5 -0
  298. data/test/fixtures/developers.yml +22 -22
  299. data/test/fixtures/developers_projects.yml +16 -16
  300. data/test/fixtures/dog_lovers.yml +7 -7
  301. data/test/fixtures/dogs.yml +4 -4
  302. data/test/fixtures/doubloons.yml +3 -3
  303. data/test/fixtures/edges.yml +5 -5
  304. data/test/fixtures/entrants.yml +14 -14
  305. data/test/fixtures/essays.yml +6 -6
  306. data/test/fixtures/faces.yml +11 -11
  307. data/test/fixtures/fk_test_has_fk.yml +3 -3
  308. data/test/fixtures/fk_test_has_pk.yml +1 -1
  309. data/test/fixtures/friendships.yml +4 -4
  310. data/test/fixtures/funny_jokes.yml +10 -10
  311. data/test/fixtures/interests.yml +33 -33
  312. data/test/fixtures/items.yml +3 -3
  313. data/test/fixtures/jobs.yml +7 -7
  314. data/test/fixtures/legacy_things.yml +3 -3
  315. data/test/fixtures/live_parrots.yml +4 -0
  316. data/test/fixtures/mateys.yml +4 -4
  317. data/test/fixtures/member_details.yml +8 -8
  318. data/test/fixtures/member_types.yml +6 -6
  319. data/test/fixtures/members.yml +11 -11
  320. data/test/fixtures/memberships.yml +34 -34
  321. data/test/fixtures/men.yml +5 -5
  322. data/test/fixtures/minimalistics.yml +2 -2
  323. data/test/fixtures/minivans.yml +5 -5
  324. data/test/fixtures/mixed_case_monkeys.yml +6 -6
  325. data/test/fixtures/mixins.yml +29 -29
  326. data/test/fixtures/movies.yml +7 -7
  327. data/test/fixtures/naked/yml/accounts.yml +1 -1
  328. data/test/fixtures/naked/yml/companies.yml +1 -1
  329. data/test/fixtures/naked/yml/courses.yml +1 -1
  330. data/test/fixtures/naked/yml/parrots.yml +2 -0
  331. data/test/fixtures/naked/yml/trees.yml +3 -0
  332. data/test/fixtures/nodes.yml +29 -0
  333. data/test/fixtures/organizations.yml +5 -5
  334. data/test/fixtures/other_comments.yml +6 -0
  335. data/test/fixtures/other_dogs.yml +2 -0
  336. data/test/fixtures/other_posts.yml +7 -0
  337. data/test/fixtures/other_topics.yml +42 -42
  338. data/test/fixtures/owners.yml +9 -9
  339. data/test/fixtures/parrots.yml +27 -27
  340. data/test/fixtures/parrots_pirates.yml +7 -7
  341. data/test/fixtures/people.yml +24 -24
  342. data/test/fixtures/peoples_treasures.yml +3 -3
  343. data/test/fixtures/pets.yml +19 -19
  344. data/test/fixtures/pirates.yml +15 -12
  345. data/test/fixtures/posts.yml +80 -80
  346. data/test/fixtures/price_estimates.yml +16 -7
  347. data/test/fixtures/products.yml +4 -4
  348. data/test/fixtures/projects.yml +7 -7
  349. data/test/fixtures/ratings.yml +14 -14
  350. data/test/fixtures/readers.yml +11 -11
  351. data/test/fixtures/references.yml +17 -17
  352. data/test/fixtures/reserved_words/distinct.yml +5 -5
  353. data/test/fixtures/reserved_words/distinct_select.yml +11 -11
  354. data/test/fixtures/reserved_words/group.yml +14 -14
  355. data/test/fixtures/reserved_words/select.yml +8 -8
  356. data/test/fixtures/reserved_words/values.yml +7 -7
  357. data/test/fixtures/ships.yml +6 -6
  358. data/test/fixtures/speedometers.yml +8 -8
  359. data/test/fixtures/sponsors.yml +12 -12
  360. data/test/fixtures/string_key_objects.yml +7 -7
  361. data/test/fixtures/subscribers.yml +10 -10
  362. data/test/fixtures/subscriptions.yml +12 -12
  363. data/test/fixtures/taggings.yml +78 -78
  364. data/test/fixtures/tags.yml +11 -11
  365. data/test/fixtures/tasks.yml +7 -7
  366. data/test/fixtures/teapots.yml +3 -3
  367. data/test/fixtures/to_be_linked/accounts.yml +2 -2
  368. data/test/fixtures/to_be_linked/users.yml +10 -10
  369. data/test/fixtures/topics.yml +49 -49
  370. data/test/fixtures/toys.yml +14 -14
  371. data/test/fixtures/traffic_lights.yml +9 -9
  372. data/test/fixtures/treasures.yml +10 -10
  373. data/test/fixtures/trees.yml +3 -0
  374. data/test/fixtures/uuid_children.yml +3 -3
  375. data/test/fixtures/uuid_parents.yml +2 -2
  376. data/test/fixtures/variants.yml +4 -4
  377. data/test/fixtures/vegetables.yml +19 -19
  378. data/test/fixtures/vertices.yml +3 -3
  379. data/test/fixtures/warehouse_things.yml +2 -2
  380. data/test/fixtures/zines.yml +5 -5
  381. data/test/migrations/10_urban/9_add_expressions.rb +11 -11
  382. data/test/migrations/decimal/1_give_me_big_numbers.rb +15 -15
  383. data/test/migrations/magic/1_currencies_have_symbols.rb +12 -12
  384. data/test/migrations/missing/1000_people_have_middle_names.rb +9 -9
  385. data/test/migrations/missing/1_people_have_last_names.rb +9 -9
  386. data/test/migrations/missing/3_we_need_reminders.rb +12 -12
  387. data/test/migrations/missing/4_innocent_jointable.rb +12 -12
  388. data/test/migrations/rename/1_we_need_things.rb +11 -11
  389. data/test/migrations/rename/2_rename_things.rb +9 -9
  390. data/test/migrations/to_copy/1_people_have_hobbies.rb +9 -9
  391. data/test/migrations/to_copy/2_people_have_descriptions.rb +9 -9
  392. data/test/migrations/to_copy2/1_create_articles.rb +7 -7
  393. data/test/migrations/to_copy2/2_create_comments.rb +7 -7
  394. data/test/migrations/to_copy_with_name_collision/1_people_have_hobbies.rb +9 -9
  395. data/test/migrations/to_copy_with_timestamps/20090101010101_people_have_hobbies.rb +9 -9
  396. data/test/migrations/to_copy_with_timestamps/20090101010202_people_have_descriptions.rb +9 -9
  397. data/test/migrations/to_copy_with_timestamps2/20090101010101_create_articles.rb +7 -7
  398. data/test/migrations/to_copy_with_timestamps2/20090101010202_create_comments.rb +7 -7
  399. data/test/migrations/valid/1_valid_people_have_last_names.rb +9 -9
  400. data/test/migrations/valid/2_we_need_reminders.rb +12 -12
  401. data/test/migrations/valid/3_innocent_jointable.rb +12 -12
  402. data/test/migrations/valid_with_subdirectories/1_valid_people_have_last_names.rb +9 -9
  403. data/test/migrations/valid_with_subdirectories/sub/2_we_need_reminders.rb +12 -12
  404. data/test/migrations/valid_with_subdirectories/sub1/3_innocent_jointable.rb +12 -12
  405. data/test/migrations/valid_with_timestamps/20100101010101_valid_with_timestamps_people_have_last_names.rb +9 -9
  406. data/test/migrations/valid_with_timestamps/20100201010101_valid_with_timestamps_we_need_reminders.rb +12 -12
  407. data/test/migrations/valid_with_timestamps/20100301010101_valid_with_timestamps_innocent_jointable.rb +12 -12
  408. data/test/migrations/version_check/20131219224947_migration_version_check.rb +8 -8
  409. data/test/models/admin.rb +5 -5
  410. data/test/models/admin/account.rb +3 -3
  411. data/test/models/admin/randomly_named_c1.rb +6 -2
  412. data/test/models/admin/user.rb +40 -40
  413. data/test/models/aircraft.rb +5 -4
  414. data/test/models/arunit2_model.rb +3 -3
  415. data/test/models/author.rb +209 -212
  416. data/test/models/auto_id.rb +4 -4
  417. data/test/models/autoloadable/extra_firm.rb +2 -2
  418. data/test/models/binary.rb +2 -2
  419. data/test/models/bird.rb +12 -12
  420. data/test/models/book.rb +23 -18
  421. data/test/models/boolean.rb +2 -2
  422. data/test/models/bulb.rb +52 -51
  423. data/test/models/cake_designer.rb +3 -3
  424. data/test/models/car.rb +29 -26
  425. data/test/models/carrier.rb +2 -2
  426. data/test/models/cat.rb +10 -0
  427. data/test/models/categorization.rb +19 -19
  428. data/test/models/category.rb +35 -35
  429. data/test/models/chef.rb +8 -7
  430. data/test/models/citation.rb +3 -3
  431. data/test/models/club.rb +25 -23
  432. data/test/models/college.rb +10 -10
  433. data/test/models/column.rb +3 -3
  434. data/test/models/column_name.rb +3 -3
  435. data/test/models/comment.rb +76 -64
  436. data/test/models/company.rb +230 -228
  437. data/test/models/company_in_module.rb +98 -98
  438. data/test/models/computer.rb +3 -3
  439. data/test/models/contact.rb +41 -41
  440. data/test/models/content.rb +40 -0
  441. data/test/models/contract.rb +20 -20
  442. data/test/models/country.rb +7 -7
  443. data/test/models/course.rb +6 -6
  444. data/test/models/customer.rb +83 -77
  445. data/test/models/customer_carrier.rb +14 -14
  446. data/test/models/dashboard.rb +3 -3
  447. data/test/models/default.rb +2 -2
  448. data/test/models/department.rb +4 -4
  449. data/test/models/developer.rb +274 -255
  450. data/test/models/dog.rb +5 -5
  451. data/test/models/dog_lover.rb +5 -5
  452. data/test/models/doubloon.rb +12 -12
  453. data/test/models/drink_designer.rb +3 -3
  454. data/test/models/edge.rb +5 -5
  455. data/test/models/electron.rb +5 -5
  456. data/test/models/engine.rb +4 -4
  457. data/test/models/entrant.rb +3 -3
  458. data/test/models/essay.rb +5 -5
  459. data/test/models/event.rb +3 -3
  460. data/test/models/eye.rb +37 -37
  461. data/test/models/face.rb +9 -9
  462. data/test/models/friendship.rb +6 -6
  463. data/test/models/guid.rb +2 -2
  464. data/test/models/guitar.rb +4 -0
  465. data/test/models/hotel.rb +11 -9
  466. data/test/models/image.rb +3 -3
  467. data/test/models/interest.rb +5 -5
  468. data/test/models/invoice.rb +4 -4
  469. data/test/models/item.rb +7 -7
  470. data/test/models/job.rb +7 -7
  471. data/test/models/joke.rb +7 -7
  472. data/test/models/keyboard.rb +3 -3
  473. data/test/models/legacy_thing.rb +3 -3
  474. data/test/models/lesson.rb +11 -11
  475. data/test/models/line_item.rb +3 -3
  476. data/test/models/liquid.rb +4 -4
  477. data/test/models/man.rb +11 -11
  478. data/test/models/matey.rb +4 -4
  479. data/test/models/member.rb +42 -41
  480. data/test/models/member_detail.rb +8 -7
  481. data/test/models/member_type.rb +3 -3
  482. data/test/models/membership.rb +35 -35
  483. data/test/models/mentor.rb +3 -0
  484. data/test/models/minimalistic.rb +2 -2
  485. data/test/models/minivan.rb +9 -9
  486. data/test/models/mixed_case_monkey.rb +3 -3
  487. data/test/models/mocktail_designer.rb +2 -0
  488. data/test/models/molecule.rb +6 -6
  489. data/test/models/movie.rb +5 -5
  490. data/test/models/node.rb +5 -0
  491. data/test/models/non_primary_key.rb +2 -0
  492. data/test/models/notification.rb +3 -0
  493. data/test/models/order.rb +4 -4
  494. data/test/models/organization.rb +14 -14
  495. data/test/models/other_dog.rb +5 -0
  496. data/test/models/owner.rb +37 -34
  497. data/test/models/parrot.rb +28 -29
  498. data/test/models/person.rb +142 -143
  499. data/test/models/personal_legacy_thing.rb +4 -4
  500. data/test/models/pet.rb +18 -15
  501. data/test/models/pet_treasure.rb +6 -0
  502. data/test/models/pirate.rb +92 -92
  503. data/test/models/possession.rb +3 -3
  504. data/test/models/post.rb +273 -264
  505. data/test/models/price_estimate.rb +4 -4
  506. data/test/models/professor.rb +5 -5
  507. data/test/models/project.rb +40 -31
  508. data/test/models/publisher.rb +2 -2
  509. data/test/models/publisher/article.rb +4 -4
  510. data/test/models/publisher/magazine.rb +3 -3
  511. data/test/models/randomly_named_c1.rb +1 -1
  512. data/test/models/rating.rb +4 -4
  513. data/test/models/reader.rb +23 -23
  514. data/test/models/recipe.rb +3 -0
  515. data/test/models/record.rb +2 -2
  516. data/test/models/reference.rb +22 -22
  517. data/test/models/reply.rb +61 -61
  518. data/test/models/ship.rb +39 -33
  519. data/test/models/ship_part.rb +8 -8
  520. data/test/models/shop.rb +17 -17
  521. data/test/models/shop_account.rb +6 -6
  522. data/test/models/speedometer.rb +6 -6
  523. data/test/models/sponsor.rb +7 -7
  524. data/test/models/string_key_object.rb +3 -3
  525. data/test/models/student.rb +4 -4
  526. data/test/models/subject.rb +16 -16
  527. data/test/models/subscriber.rb +8 -8
  528. data/test/models/subscription.rb +4 -4
  529. data/test/models/tag.rb +13 -7
  530. data/test/models/tagging.rb +13 -13
  531. data/test/models/task.rb +5 -5
  532. data/test/models/topic.rb +118 -124
  533. data/test/models/toy.rb +6 -6
  534. data/test/models/traffic_light.rb +4 -4
  535. data/test/models/treasure.rb +14 -14
  536. data/test/models/treaty.rb +7 -7
  537. data/test/models/tree.rb +3 -0
  538. data/test/models/tuning_peg.rb +4 -0
  539. data/test/models/tyre.rb +11 -11
  540. data/test/models/user.rb +14 -0
  541. data/test/models/uuid_child.rb +3 -3
  542. data/test/models/uuid_item.rb +6 -0
  543. data/test/models/uuid_parent.rb +3 -3
  544. data/test/models/vegetables.rb +24 -24
  545. data/test/models/vehicle.rb +6 -6
  546. data/test/models/vertex.rb +9 -9
  547. data/test/models/warehouse_thing.rb +5 -5
  548. data/test/models/wheel.rb +3 -3
  549. data/test/models/without_table.rb +3 -3
  550. data/test/models/zine.rb +3 -3
  551. data/test/schema/mysql2_specific_schema.rb +68 -58
  552. data/test/schema/oracle_specific_schema.rb +40 -43
  553. data/test/schema/postgresql_specific_schema.rb +114 -202
  554. data/test/schema/schema.rb +1057 -952
  555. data/test/schema/schema.rb.original +1057 -0
  556. data/test/schema/sqlite_specific_schema.rb +18 -22
  557. data/test/support/config.rb +43 -43
  558. data/test/support/connection.rb +23 -22
  559. data/test/support/connection_helper.rb +14 -14
  560. data/test/support/ddl_helper.rb +8 -8
  561. data/test/support/schema_dumping_helper.rb +20 -20
  562. data/test/support/yaml_compatibility_fixtures/rails_4_1.yml +22 -0
  563. data/test/support/yaml_compatibility_fixtures/rails_4_2_0.yml +182 -0
  564. metadata +129 -24
  565. data/test/cases/associations/deprecated_counter_cache_on_has_many_through_test.rb +0 -26
  566. data/test/cases/attribute_methods/serialization_test.rb +0 -29
  567. data/test/cases/migration/change_schema_test - Copy.rb +0 -448
  568. data/test/cases/migration/foreign_key_test - Changed.rb +0 -325
  569. data/test/cases/migration/table_and_index_test.rb +0 -24
  570. data/test/cases/relation/where_test2.rb +0 -36
  571. data/test/cases/type/decimal_test.rb +0 -56
  572. data/test/cases/type/unsigned_integer_test.rb +0 -18
  573. data/test/cases/xml_serialization_test.rb +0 -457
  574. data/test/connections/native_ibm_db/connection.rb +0 -44
  575. data/test/fixtures/naked/csv/accounts.csv +0 -1
  576. data/test/schema/i5/ibm_db_specific_schema.rb +0 -137
  577. data/test/schema/ids/ibm_db_specific_schema.rb +0 -140
  578. data/test/schema/luw/ibm_db_specific_schema.rb +0 -137
  579. data/test/schema/mysql_specific_schema.rb +0 -70
  580. data/test/schema/zOS/ibm_db_specific_schema.rb +0 -208
@@ -0,0 +1,1057 @@
1
+ ActiveRecord::Schema.define do
2
+ # ------------------------------------------------------------------- #
3
+ # #
4
+ # Please keep these create table statements in alphabetical order #
5
+ # unless the ordering matters. In which case, define them below. #
6
+ # #
7
+ # ------------------------------------------------------------------- #
8
+
9
+ create_table :accounts, force: true do |t|
10
+ t.integer :firm_id
11
+ t.string :firm_name
12
+ t.integer :credit_limit
13
+ end
14
+
15
+ create_table :admin_accounts, force: true do |t|
16
+ t.string :name
17
+ end
18
+
19
+ create_table :admin_users, force: true do |t|
20
+ t.string :name
21
+ t.string :settings, null: true, limit: 1024
22
+ # MySQL does not allow default values for blobs. Fake it out with a
23
+ # big varchar below.
24
+ t.string :preferences, null: true, default: '', limit: 1024
25
+ t.string :json_data, null: true, limit: 1024
26
+ t.string :json_data_empty, null: true, default: "", limit: 1024
27
+ t.text :params
28
+ t.references :account
29
+ end
30
+
31
+ create_table :aircraft, force: true do |t|
32
+ t.string :name
33
+ t.integer :wheels_count, default: 0, null: false
34
+ end
35
+
36
+ create_table :articles, force: true do |t|
37
+ end
38
+
39
+ create_table :articles_magazines, force: true do |t|
40
+ t.references :article
41
+ t.references :magazine
42
+ end
43
+
44
+ create_table :articles_tags, force: true do |t|
45
+ t.references :article
46
+ t.references :tag
47
+ end
48
+
49
+ create_table :audit_logs, force: true do |t|
50
+ t.column :message, :string, null: false
51
+ t.column :developer_id, :integer, null: false
52
+ t.integer :unvalidated_developer_id
53
+ end
54
+
55
+ create_table :authors, force: true do |t|
56
+ t.string :name, null: false
57
+ t.integer :author_address_id
58
+ t.integer :author_address_extra_id
59
+ t.string :organization_id
60
+ t.string :owned_essay_id
61
+ end
62
+
63
+ create_table :author_addresses, force: true do |t|
64
+ end
65
+
66
+ add_foreign_key :authors, :author_addresses
67
+
68
+ create_table :author_favorites, force: true do |t|
69
+ t.column :author_id, :integer
70
+ t.column :favorite_author_id, :integer
71
+ end
72
+
73
+ create_table :auto_id_tests, force: true, id: false do |t|
74
+ t.primary_key :auto_id
75
+ t.integer :value
76
+ end
77
+
78
+ create_table :binaries, force: true do |t|
79
+ t.string :name
80
+ t.binary :data
81
+ t.binary :short_data, limit: 2048
82
+ end
83
+
84
+ create_table :birds, force: true do |t|
85
+ t.string :name
86
+ t.string :color
87
+ t.integer :pirate_id
88
+ end
89
+
90
+ create_table :books, force: true do |t|
91
+ t.integer :author_id
92
+ t.string :format
93
+ t.column :name, :string
94
+ t.column :status, :integer, default: 0
95
+ t.column :read_status, :integer, default: 0
96
+ t.column :nullable_status, :integer
97
+ t.column :language, :integer, default: 0
98
+ t.column :author_visibility, :integer, default: 0
99
+ t.column :illustrator_visibility, :integer, default: 0
100
+ t.column :font_size, :integer, default: 0
101
+ t.column :cover, :string, default: 'hard'
102
+ end
103
+
104
+ create_table :booleans, force: true do |t|
105
+ t.boolean :value
106
+ t.boolean :has_fun, null: false, default: false
107
+ end
108
+
109
+ create_table :bulbs, force: true do |t|
110
+ t.integer :car_id
111
+ t.string :name
112
+ t.boolean :frickinawesome, default: false
113
+ t.string :color
114
+ end
115
+
116
+ create_table "CamelCase", force: true do |t|
117
+ t.string :name
118
+ end
119
+
120
+ create_table :cars, force: true do |t|
121
+ t.string :name
122
+ t.integer :engines_count
123
+ t.integer :wheels_count
124
+ t.column :lock_version, :integer, null: false, default: 0
125
+ t.timestamps null: false
126
+ end
127
+
128
+ create_table :carriers, force: true
129
+
130
+ create_table :categories, force: true do |t|
131
+ t.string :name, null: false
132
+ t.string :type
133
+ t.integer :categorizations_count
134
+ end
135
+
136
+ create_table :categories_posts, force: true, id: false do |t|
137
+ t.integer :category_id, null: false
138
+ t.integer :post_id, null: false
139
+ end
140
+
141
+ create_table :categorizations, force: true do |t|
142
+ t.column :category_id, :integer
143
+ t.string :named_category_name
144
+ t.column :post_id, :integer
145
+ t.column :author_id, :integer
146
+ t.column :special, :boolean
147
+ end
148
+
149
+ create_table :citations, force: true do |t|
150
+ t.column :book1_id, :integer
151
+ t.column :book2_id, :integer
152
+ end
153
+
154
+ create_table :clubs, force: true do |t|
155
+ t.string :name
156
+ t.integer :category_id
157
+ end
158
+
159
+ create_table :collections, force: true do |t|
160
+ t.string :name
161
+ end
162
+
163
+ create_table :colnametests, force: true do |t|
164
+ t.integer :references, null: false
165
+ end
166
+
167
+ create_table :columns, force: true do |t|
168
+ t.references :record
169
+ end
170
+
171
+ create_table :comments, force: true do |t|
172
+ t.integer :post_id, null: false
173
+ # use VARCHAR2(4000) instead of CLOB datatype as CLOB data type has many limitations in
174
+ # Oracle SELECT WHERE clause which causes many unit test failures
175
+ if current_adapter?(:OracleAdapter) || current_adapter?(:IBM_DBAdapter)
176
+ t.string :body, null: false, limit: 4000
177
+ else
178
+ t.text :body, null: false
179
+ end
180
+ t.string :type
181
+ t.integer :tags_count, default: 0
182
+ t.integer :children_count, default: 0
183
+ t.integer :parent_id
184
+ t.references :author, polymorphic: true
185
+ t.string :resource_id
186
+ t.string :resource_type
187
+ t.integer :developer_id
188
+ t.datetime :deleted_at
189
+ end
190
+
191
+ create_table :companies, force: true do |t|
192
+ t.string :type
193
+ t.integer :firm_id
194
+ t.string :firm_name
195
+ t.string :name
196
+ t.integer :client_of
197
+ t.integer :rating, default: 1
198
+ t.integer :account_id
199
+ t.string :description, default: ""
200
+ t.index [:firm_id, :type, :rating], name: "company_index", length: { type: 10 }, order: { rating: :desc }
201
+ t.index [:firm_id, :type], name: "company_partial_index", where: "rating > 10"
202
+ t.index :name, name: 'company_name_index', using: :btree
203
+ t.index 'lower(name)', name: "company_expression_index" if supports_expression_index?
204
+ end
205
+
206
+ create_table :content, force: true do |t|
207
+ t.string :title
208
+ end
209
+
210
+ create_table :content_positions, force: true do |t|
211
+ t.integer :content_id
212
+ end
213
+
214
+ create_table :vegetables, force: true do |t|
215
+ t.string :name
216
+ t.integer :seller_id
217
+ t.string :custom_type
218
+ end
219
+
220
+ create_table :computers, force: true do |t|
221
+ t.string :system
222
+ t.integer :developer, null: false
223
+ t.integer :extendedWarranty, null: false
224
+ end
225
+
226
+ create_table :computers_developers, id: false, force: true do |t|
227
+ t.references :computer
228
+ t.references :developer
229
+ end
230
+
231
+ create_table :contracts, force: true do |t|
232
+ t.integer :developer_id
233
+ t.integer :company_id
234
+ end
235
+
236
+ create_table :customers, force: true do |t|
237
+ t.string :name
238
+ t.integer :balance, default: 0
239
+ t.string :address_street
240
+ t.string :address_city
241
+ t.string :address_country
242
+ t.string :gps_location
243
+ end
244
+
245
+ create_table :customer_carriers, force: true do |t|
246
+ t.references :customer
247
+ t.references :carrier
248
+ end
249
+
250
+ create_table :dashboards, force: true, id: false do |t|
251
+ t.string :dashboard_id
252
+ t.string :name
253
+ end
254
+
255
+ create_table :developers, force: true do |t|
256
+ t.string :name
257
+ t.string :first_name
258
+ t.integer :salary, default: 70000
259
+ t.integer :firm_id
260
+ t.integer :mentor_id
261
+ if subsecond_precision_supported?
262
+ t.datetime :created_at, precision: 6
263
+ t.datetime :updated_at, precision: 6
264
+ t.datetime :created_on, precision: 6
265
+ t.datetime :updated_on, precision: 6
266
+ else
267
+ t.datetime :created_at
268
+ t.datetime :updated_at
269
+ t.datetime :created_on
270
+ t.datetime :updated_on
271
+ end
272
+ end
273
+
274
+ create_table :developers_projects, force: true, id: false do |t|
275
+ t.integer :developer_id, null: false
276
+ t.integer :project_id, null: false
277
+ t.date :joined_on
278
+ t.integer :access_level, default: 1
279
+ end
280
+
281
+ create_table :dog_lovers, force: true do |t|
282
+ t.integer :trained_dogs_count, default: 0
283
+ t.integer :bred_dogs_count, default: 0
284
+ t.integer :dogs_count, default: 0
285
+ end
286
+
287
+ create_table :dogs, force: true do |t|
288
+ t.integer :trainer_id
289
+ t.integer :breeder_id
290
+ t.integer :dog_lover_id
291
+ t.string :alias
292
+ end
293
+
294
+ create_table :doubloons, force: true do |t|
295
+ t.integer :pirate_id
296
+ t.integer :weight
297
+ end
298
+
299
+ create_table :edges, force: true, id: false do |t|
300
+ t.column :source_id, :integer, null: false
301
+ t.column :sink_id, :integer, null: false
302
+ t.index [:source_id, :sink_id], unique: true, name: 'unique_edge_index'
303
+ end
304
+
305
+ create_table :engines, force: true do |t|
306
+ t.integer :car_id
307
+ end
308
+
309
+ create_table :entrants, force: true do |t|
310
+ t.string :name, null: false
311
+ t.integer :course_id, null: false
312
+ end
313
+
314
+ create_table :essays, force: true do |t|
315
+ t.string :name
316
+ t.string :writer_id
317
+ t.string :writer_type
318
+ t.string :category_id
319
+ t.string :author_id
320
+ end
321
+
322
+ create_table :events, force: true do |t|
323
+ t.string :title, limit: 5
324
+ end
325
+
326
+ create_table :eyes, force: true do |t|
327
+ end
328
+
329
+ create_table :funny_jokes, force: true do |t|
330
+ t.string :name
331
+ end
332
+
333
+ create_table :cold_jokes, force: true do |t|
334
+ t.string :cold_name
335
+ end
336
+
337
+ create_table :friendships, force: true do |t|
338
+ t.integer :friend_id
339
+ t.integer :follower_id
340
+ end
341
+
342
+ create_table :goofy_string_id, force: true, id: false do |t|
343
+ t.string :id, null: false
344
+ t.string :info
345
+ end
346
+
347
+ create_table :having, force: true do |t|
348
+ t.string :where
349
+ end
350
+
351
+ create_table :guids, force: true do |t|
352
+ t.column :key, :string
353
+ end
354
+
355
+ create_table :guitars, force: true do |t|
356
+ t.string :color
357
+ end
358
+
359
+ create_table :inept_wizards, force: true do |t|
360
+ t.column :name, :string, null: false
361
+ t.column :city, :string, null: false
362
+ t.column :type, :string
363
+ end
364
+
365
+ create_table :integer_limits, force: true do |t|
366
+ t.integer :"c_int_without_limit"
367
+ (1..8).each do |i|
368
+ t.integer :"c_int_#{i}", limit: i
369
+ end
370
+ end
371
+
372
+ create_table :invoices, force: true do |t|
373
+ t.integer :balance
374
+ if subsecond_precision_supported?
375
+ t.datetime :updated_at, precision: 6
376
+ else
377
+ t.datetime :updated_at
378
+ end
379
+ end
380
+
381
+ create_table :iris, force: true do |t|
382
+ t.references :eye
383
+ t.string :color
384
+ end
385
+
386
+ create_table :items, force: true do |t|
387
+ t.column :name, :string
388
+ end
389
+
390
+ create_table :jobs, force: true do |t|
391
+ t.integer :ideal_reference_id
392
+ end
393
+
394
+ create_table :jobs_pool, force: true, id: false do |t|
395
+ t.references :job, null: false, index: true
396
+ t.references :user, null: false, index: true
397
+ end
398
+
399
+ create_table :keyboards, force: true, id: false do |t|
400
+ t.primary_key :key_number
401
+ t.string :name
402
+ end
403
+
404
+ create_table :legacy_things, force: true do |t|
405
+ t.integer :tps_report_number
406
+ t.integer :version, null: false, default: 0
407
+ end
408
+
409
+ create_table :lessons, force: true do |t|
410
+ t.string :name
411
+ end
412
+
413
+ create_table :lessons_students, id: false, force: true do |t|
414
+ t.references :lesson
415
+ t.references :student
416
+ end
417
+
418
+ create_table :students, force: true do |t|
419
+ t.string :name
420
+ t.boolean :active
421
+ t.integer :college_id
422
+ end
423
+
424
+ add_foreign_key :lessons_students, :students, on_delete: :cascade
425
+
426
+ create_table :lint_models, force: true
427
+
428
+ create_table :line_items, force: true do |t|
429
+ t.integer :invoice_id
430
+ t.integer :amount
431
+ end
432
+
433
+ create_table :lions, force: true do |t|
434
+ t.integer :gender
435
+ t.boolean :is_vegetarian, default: false
436
+ end
437
+
438
+ create_table :lock_without_defaults, force: true do |t|
439
+ t.column :lock_version, :integer
440
+ end
441
+
442
+ create_table :lock_without_defaults_cust, force: true do |t|
443
+ t.column :custom_lock_version, :integer
444
+ end
445
+
446
+ create_table :magazines, force: true do |t|
447
+ end
448
+
449
+ create_table :mateys, id: false, force: true do |t|
450
+ t.column :pirate_id, :integer
451
+ t.column :target_id, :integer
452
+ t.column :weight, :integer
453
+ end
454
+
455
+ create_table :members, force: true do |t|
456
+ t.string :name
457
+ t.integer :member_type_id
458
+ end
459
+
460
+ create_table :member_details, force: true do |t|
461
+ t.integer :member_id
462
+ t.integer :organization_id
463
+ t.string :extra_data
464
+ end
465
+
466
+ create_table :member_friends, force: true, id: false do |t|
467
+ t.integer :member_id
468
+ t.integer :friend_id
469
+ end
470
+
471
+ create_table :memberships, force: true do |t|
472
+ t.datetime :joined_on
473
+ t.integer :club_id, :member_id
474
+ t.boolean :favourite, default: false
475
+ t.string :type
476
+ end
477
+
478
+ create_table :member_types, force: true do |t|
479
+ t.string :name
480
+ end
481
+
482
+ create_table :mentors, force: true do |t|
483
+ t.string :name
484
+ end
485
+
486
+ create_table :minivans, force: true, id: false do |t|
487
+ t.string :minivan_id
488
+ t.string :name
489
+ t.string :speedometer_id
490
+ t.string :color
491
+ end
492
+
493
+ create_table :minimalistics, force: true do |t|
494
+ end
495
+
496
+ create_table :mixed_case_monkeys, force: true, id: false do |t|
497
+ t.primary_key :monkeyID
498
+ t.integer :fleaCount
499
+ end
500
+
501
+ create_table :mixins, force: true do |t|
502
+ t.integer :parent_id
503
+ t.integer :pos
504
+ t.datetime :created_at
505
+ t.datetime :updated_at
506
+ t.integer :lft
507
+ t.integer :rgt
508
+ t.integer :root_id
509
+ t.string :type
510
+ end
511
+
512
+ create_table :movies, force: true, id: false do |t|
513
+ t.primary_key :movieid
514
+ t.string :name
515
+ end
516
+
517
+ create_table :notifications, force: true do |t|
518
+ t.string :message
519
+ end
520
+
521
+ create_table :numeric_data, force: true do |t|
522
+ t.decimal :bank_balance, precision: 10, scale: 2
523
+ t.decimal :big_bank_balance, precision: 15, scale: 2
524
+ t.decimal :world_population, precision: 10, scale: 0
525
+ t.decimal :my_house_population, precision: 2, scale: 0
526
+ t.decimal :decimal_number_with_default, precision: 3, scale: 2, default: 2.78
527
+ t.float :temperature
528
+ # Oracle/SQLServer supports precision up to 38
529
+ if current_adapter?(:OracleAdapter, :SQLServerAdapter)
530
+ t.decimal :atoms_in_universe, precision: 38, scale: 0
531
+ elsif current_adapter?(:IBM_DBAdapter)
532
+ t.decimal :atoms_in_universe, precision: 31, scale: 0
533
+ elsif current_adapter?(:FbAdapter)
534
+ t.decimal :atoms_in_universe, precision: 18, scale: 0
535
+ else
536
+ t.decimal :atoms_in_universe, precision: 55, scale: 0
537
+ end
538
+ end
539
+
540
+ create_table :orders, force: true do |t|
541
+ t.string :name
542
+ t.integer :billing_customer_id
543
+ t.integer :shipping_customer_id
544
+ end
545
+
546
+ create_table :organizations, force: true do |t|
547
+ t.string :name
548
+ end
549
+
550
+ create_table :owners, primary_key: :owner_id, force: true do |t|
551
+ t.string :name
552
+ if subsecond_precision_supported?
553
+ t.column :updated_at, :datetime, precision: 6
554
+ else
555
+ t.column :updated_at, :datetime
556
+ end
557
+ t.column :happy_at, :datetime
558
+ t.string :essay_id
559
+ end
560
+
561
+ create_table :paint_colors, force: true do |t|
562
+ t.integer :non_poly_one_id
563
+ end
564
+
565
+ create_table :paint_textures, force: true do |t|
566
+ t.integer :non_poly_two_id
567
+ end
568
+
569
+ create_table :parrots, force: true do |t|
570
+ t.column :name, :string
571
+ t.column :color, :string
572
+ t.column :parrot_sti_class, :string
573
+ t.column :killer_id, :integer
574
+ t.column :updated_count, :integer, default: 0
575
+ if subsecond_precision_supported?
576
+ t.column :created_at, :datetime, precision: 0
577
+ t.column :created_on, :datetime, precision: 0
578
+ t.column :updated_at, :datetime, precision: 0
579
+ t.column :updated_on, :datetime, precision: 0
580
+ else
581
+ t.column :created_at, :datetime
582
+ t.column :created_on, :datetime
583
+ t.column :updated_at, :datetime
584
+ t.column :updated_on, :datetime
585
+ end
586
+ end
587
+
588
+ create_table :parrots_pirates, id: false, force: true do |t|
589
+ t.column :parrot_id, :integer
590
+ t.column :pirate_id, :integer
591
+ end
592
+
593
+ create_table :parrots_treasures, id: false, force: true do |t|
594
+ t.column :parrot_id, :integer
595
+ t.column :treasure_id, :integer
596
+ end
597
+
598
+ create_table :people, force: true do |t|
599
+ t.string :first_name, null: false
600
+ t.references :primary_contact
601
+ t.string :gender, limit: 1
602
+ t.references :number1_fan
603
+ t.integer :lock_version, null: false, default: 0
604
+ t.string :comments
605
+ t.integer :followers_count, default: 0
606
+ t.integer :friends_too_count, default: 0
607
+ t.references :best_friend
608
+ t.references :best_friend_of
609
+ t.integer :insures, null: false, default: 0
610
+ t.timestamp :born_at
611
+ t.timestamps null: false
612
+ end
613
+
614
+ create_table :peoples_treasures, id: false, force: true do |t|
615
+ t.column :rich_person_id, :integer
616
+ t.column :treasure_id, :integer
617
+ end
618
+
619
+ create_table :personal_legacy_things, force: true do |t|
620
+ t.integer :tps_report_number
621
+ t.integer :person_id
622
+ t.integer :version, null: false, default: 0
623
+ end
624
+
625
+ create_table :pets, primary_key: :pet_id, force: true do |t|
626
+ t.string :name
627
+ t.integer :owner_id, :integer
628
+ if subsecond_precision_supported?
629
+ t.timestamps null: false, precision: 6
630
+ else
631
+ t.timestamps null: false
632
+ end
633
+ end
634
+
635
+ create_table :pets_treasures, force: true do |t|
636
+ t.column :treasure_id, :integer
637
+ t.column :pet_id, :integer
638
+ t.column :rainbow_color, :string
639
+ end
640
+
641
+ create_table :pirates, force: true do |t|
642
+ t.column :catchphrase, :string
643
+ t.column :parrot_id, :integer
644
+ t.integer :non_validated_parrot_id
645
+ if subsecond_precision_supported?
646
+ t.column :created_on, :datetime, precision: 6
647
+ t.column :updated_on, :datetime, precision: 6
648
+ else
649
+ t.column :created_on, :datetime
650
+ t.column :updated_on, :datetime
651
+ end
652
+ end
653
+
654
+ create_table :posts, force: true do |t|
655
+ t.integer :author_id
656
+ t.string :title, null: false
657
+ # use VARCHAR2(4000) instead of CLOB datatype as CLOB data type has many limitations in
658
+ # Oracle SELECT WHERE clause which causes many unit test failures
659
+ if current_adapter?(:OracleAdapter) || current_adapter?(:IBM_DBAdapter)
660
+ t.string :body, null: false, limit: 4000
661
+ else
662
+ t.text :body, null: false
663
+ end
664
+ t.string :type
665
+ t.integer :comments_count, default: 0
666
+ t.integer :taggings_with_delete_all_count, default: 0
667
+ t.integer :taggings_with_destroy_count, default: 0
668
+ t.integer :tags_count, default: 0
669
+ t.integer :tags_with_destroy_count, default: 0
670
+ t.integer :tags_with_nullify_count, default: 0
671
+ end
672
+
673
+ create_table :serialized_posts, force: true do |t|
674
+ t.integer :author_id
675
+ t.string :title, null: false
676
+ end
677
+
678
+ create_table :images, force: true do |t|
679
+ t.integer :imageable_identifier
680
+ t.string :imageable_class
681
+ end
682
+
683
+ create_table :price_estimates, force: true do |t|
684
+ t.string :estimate_of_type
685
+ t.integer :estimate_of_id
686
+ t.integer :price
687
+ end
688
+
689
+ create_table :products, force: true do |t|
690
+ t.references :collection
691
+ t.references :type
692
+ t.string :name
693
+ end
694
+
695
+ create_table :product_types, force: true do |t|
696
+ t.string :name
697
+ end
698
+
699
+ create_table :projects, force: true do |t|
700
+ t.string :name
701
+ t.string :type
702
+ t.integer :firm_id
703
+ t.integer :mentor_id
704
+ end
705
+
706
+ create_table :randomly_named_table1, force: true do |t|
707
+ t.string :some_attribute
708
+ t.integer :another_attribute
709
+ end
710
+
711
+ create_table :randomly_named_table2, force: true do |t|
712
+ t.string :some_attribute
713
+ t.integer :another_attribute
714
+ end
715
+
716
+ create_table :randomly_named_table3, force: true do |t|
717
+ t.string :some_attribute
718
+ t.integer :another_attribute
719
+ end
720
+
721
+ create_table :ratings, force: true do |t|
722
+ t.integer :comment_id
723
+ t.integer :value
724
+ end
725
+
726
+ create_table :readers, force: true do |t|
727
+ t.integer :post_id, null: false
728
+ t.integer :person_id, null: false
729
+ t.boolean :skimmer, default: false
730
+ t.integer :first_post_id
731
+ end
732
+
733
+ create_table :references, force: true do |t|
734
+ t.integer :person_id
735
+ t.integer :job_id
736
+ t.boolean :favourite
737
+ t.integer :lock_version, default: 0
738
+ end
739
+
740
+ create_table :shape_expressions, force: true do |t|
741
+ t.string :paint_type
742
+ t.integer :paint_id
743
+ t.string :shape_type
744
+ t.integer :shape_id
745
+ end
746
+
747
+ create_table :ships, force: true do |t|
748
+ t.string :name
749
+ t.integer :pirate_id
750
+ t.belongs_to :developer
751
+ t.integer :update_only_pirate_id
752
+ # Conventionally named column for counter_cache
753
+ t.integer :treasures_count, default: 0
754
+ t.datetime :created_at
755
+ t.datetime :created_on
756
+ t.datetime :updated_at
757
+ t.datetime :updated_on
758
+ end
759
+
760
+ create_table :ship_parts, force: true do |t|
761
+ t.string :name
762
+ t.integer :ship_id
763
+ if subsecond_precision_supported?
764
+ t.datetime :updated_at, precision: 6
765
+ else
766
+ t.datetime :updated_at
767
+ end
768
+ end
769
+
770
+ create_table :prisoners, force: true do |t|
771
+ t.belongs_to :ship
772
+ end
773
+
774
+ create_table :shop_accounts, force: true do |t|
775
+ t.references :customer
776
+ t.references :customer_carrier
777
+ end
778
+
779
+ create_table :speedometers, force: true, id: false do |t|
780
+ t.string :speedometer_id
781
+ t.string :name
782
+ t.string :dashboard_id
783
+ end
784
+
785
+ create_table :sponsors, force: true do |t|
786
+ t.integer :club_id
787
+ t.integer :sponsorable_id
788
+ t.string :sponsorable_type
789
+ end
790
+
791
+ create_table :string_key_objects, id: false, primary_key: :id, force: true do |t|
792
+ t.string :id
793
+ t.string :name
794
+ t.integer :lock_version, null: false, default: 0
795
+ end
796
+
797
+ create_table :subscribers, force: true, id: false do |t|
798
+ t.string :nick, null: false
799
+ t.string :name
800
+ t.column :books_count, :integer, null: false, default: 0
801
+ t.index :nick, unique: true
802
+ end
803
+
804
+ create_table :subscriptions, force: true do |t|
805
+ t.string :subscriber_id
806
+ t.integer :book_id
807
+ end
808
+
809
+ create_table :tags, force: true do |t|
810
+ t.column :name, :string
811
+ t.column :taggings_count, :integer, default: 0
812
+ end
813
+
814
+ create_table :taggings, force: true do |t|
815
+ t.column :tag_id, :integer
816
+ t.column :super_tag_id, :integer
817
+ t.column :taggable_type, :string
818
+ t.column :taggable_id, :integer
819
+ t.string :comment
820
+ end
821
+
822
+ create_table :tasks, force: true do |t|
823
+ t.datetime :starting
824
+ t.datetime :ending
825
+ end
826
+
827
+ create_table :topics, force: true do |t|
828
+ t.string :title, limit: 250
829
+ t.string :author_name
830
+ t.string :author_email_address
831
+ if subsecond_precision_supported?
832
+ t.datetime :written_on, precision: 6
833
+ else
834
+ t.datetime :written_on
835
+ end
836
+ t.time :bonus_time
837
+ t.date :last_read
838
+ # use VARCHAR2(4000) instead of CLOB datatype as CLOB data type has many limitations in
839
+ # Oracle SELECT WHERE clause which causes many unit test failures
840
+ if current_adapter?(:OracleAdapter) || current_adapter?(:IBM_DBAdapter)
841
+ t.string :content, limit: 4000
842
+ t.string :important, limit: 4000
843
+ else
844
+ t.text :content
845
+ t.text :important
846
+ end
847
+ t.boolean :approved, default: true
848
+ t.integer :replies_count, default: 0
849
+ t.integer :unique_replies_count, default: 0
850
+ t.integer :parent_id
851
+ t.string :parent_title
852
+ t.string :type
853
+ t.string :group
854
+ if subsecond_precision_supported?
855
+ t.timestamps null: true, precision: 6
856
+ else
857
+ t.timestamps null: true
858
+ end
859
+ end
860
+
861
+ create_table :toys, primary_key: :toy_id, force: true do |t|
862
+ t.string :name
863
+ t.integer :pet_id, :integer
864
+ t.timestamps null: false
865
+ end
866
+
867
+ create_table :traffic_lights, force: true do |t|
868
+ t.string :location
869
+ t.string :state
870
+ t.text :long_state, null: false
871
+ t.datetime :created_at
872
+ t.datetime :updated_at
873
+ end
874
+
875
+ create_table :treasures, force: true do |t|
876
+ t.column :name, :string
877
+ t.column :type, :string
878
+ t.column :looter_id, :integer
879
+ t.column :looter_type, :string
880
+ t.belongs_to :ship
881
+ end
882
+
883
+ create_table :tuning_pegs, force: true do |t|
884
+ t.integer :guitar_id
885
+ t.float :pitch
886
+ end
887
+
888
+ create_table :tyres, force: true do |t|
889
+ t.integer :car_id
890
+ end
891
+
892
+ create_table :variants, force: true do |t|
893
+ t.references :product
894
+ t.string :name
895
+ end
896
+
897
+ create_table :vertices, force: true do |t|
898
+ t.column :label, :string
899
+ end
900
+
901
+ create_table 'warehouse_things', force: true do |t|
902
+ t.integer :value
903
+ end
904
+
905
+ [:circles, :squares, :triangles, :non_poly_ones, :non_poly_twos].each do |t|
906
+ create_table(t, force: true) { }
907
+ end
908
+
909
+ # NOTE - the following 4 tables are used by models that have :inverse_of options on the associations
910
+ create_table :men, force: true do |t|
911
+ t.string :name
912
+ end
913
+
914
+ create_table :faces, force: true do |t|
915
+ t.string :description
916
+ t.integer :man_id
917
+ t.integer :polymorphic_man_id
918
+ t.string :polymorphic_man_type
919
+ t.integer :poly_man_without_inverse_id
920
+ t.string :poly_man_without_inverse_type
921
+ t.integer :horrible_polymorphic_man_id
922
+ t.string :horrible_polymorphic_man_type
923
+ end
924
+
925
+ create_table :interests, force: true do |t|
926
+ t.string :topic
927
+ t.integer :man_id
928
+ t.integer :polymorphic_man_id
929
+ t.string :polymorphic_man_type
930
+ t.integer :zine_id
931
+ end
932
+
933
+ create_table :wheels, force: true do |t|
934
+ t.references :wheelable, polymorphic: true
935
+ end
936
+
937
+ create_table :zines, force: true do |t|
938
+ t.string :title
939
+ end
940
+
941
+ create_table :countries, force: true, id: false, primary_key: 'country_id' do |t|
942
+ t.string :country_id
943
+ t.string :name
944
+ end
945
+ create_table :treaties, force: true, id: false, primary_key: 'treaty_id' do |t|
946
+ t.string :treaty_id
947
+ t.string :name
948
+ end
949
+ create_table :countries_treaties, force: true, primary_key: [:country_id, :treaty_id] do |t|
950
+ t.string :country_id, null: false
951
+ t.string :treaty_id, null: false
952
+ end
953
+
954
+ create_table :liquid, force: true do |t|
955
+ t.string :name
956
+ end
957
+ create_table :molecules, force: true do |t|
958
+ t.integer :liquid_id
959
+ t.string :name
960
+ end
961
+ create_table :electrons, force: true do |t|
962
+ t.integer :molecule_id
963
+ t.string :name
964
+ end
965
+ create_table :weirds, force: true do |t|
966
+ t.string 'a$b'
967
+ t.string 'なまえ'
968
+ t.string 'from'
969
+ end
970
+
971
+ create_table :nodes, force: true do |t|
972
+ t.integer :tree_id
973
+ t.integer :parent_id
974
+ t.string :name
975
+ t.datetime :updated_at
976
+ end
977
+ create_table :trees, force: true do |t|
978
+ t.string :name
979
+ t.datetime :updated_at
980
+ end
981
+
982
+ create_table :hotels, force: true do |t|
983
+ end
984
+ create_table :departments, force: true do |t|
985
+ t.integer :hotel_id
986
+ end
987
+ create_table :cake_designers, force: true do |t|
988
+ end
989
+ create_table :drink_designers, force: true do |t|
990
+ end
991
+ create_table :chefs, force: true do |t|
992
+ t.integer :employable_id
993
+ t.string :employable_type
994
+ t.integer :department_id
995
+ t.string :employable_list_type
996
+ t.integer :employable_list_id
997
+ end
998
+ create_table :recipes, force: true do |t|
999
+ t.integer :chef_id
1000
+ t.integer :hotel_id
1001
+ end
1002
+
1003
+ create_table :records, force: true do |t|
1004
+ end
1005
+
1006
+ if supports_foreign_keys?
1007
+ # fk_test_has_fk should be before fk_test_has_pk
1008
+ create_table :fk_test_has_fk, force: true do |t|
1009
+ t.integer :fk_id, null: false
1010
+ end
1011
+
1012
+ create_table :fk_test_has_pk, force: true, primary_key: "pk_id" do |t|
1013
+ end
1014
+
1015
+ add_foreign_key :fk_test_has_fk, :fk_test_has_pk, column: "fk_id", name: "fk_name", primary_key: "pk_id"
1016
+ end
1017
+
1018
+ create_table :overloaded_types, force: true do |t|
1019
+ t.float :overloaded_float, default: 500
1020
+ t.float :unoverloaded_float
1021
+ t.string :overloaded_string_with_limit, limit: 255
1022
+ t.string :string_with_default, default: 'the original default'
1023
+ end
1024
+
1025
+ create_table :users, force: true do |t|
1026
+ t.string :token
1027
+ t.string :auth_token
1028
+ end
1029
+
1030
+ create_table :test_with_keyword_column_name, force: true do |t|
1031
+ t.string :desc
1032
+ end
1033
+
1034
+ create_table :non_primary_keys, force: true, id: false do |t|
1035
+ t.integer :id
1036
+ end
1037
+ end
1038
+
1039
+ Course.connection.create_table :courses, force: true do |t|
1040
+ t.column :name, :string, null: false
1041
+ t.column :college_id, :integer
1042
+ end
1043
+
1044
+ College.connection.create_table :colleges, force: true do |t|
1045
+ t.column :name, :string, null: false
1046
+ end
1047
+
1048
+ Professor.connection.create_table :professors, force: true do |t|
1049
+ t.column :name, :string, null: false
1050
+ end
1051
+
1052
+ Professor.connection.create_table :courses_professors, id: false, force: true do |t|
1053
+ t.references :course
1054
+ t.references :professor
1055
+ end
1056
+
1057
+ OtherDog.connection.create_table :dogs, force: true