ibm_db 3.0.5-x86-mingw32 → 5.0.5-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (358) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGES +4 -0
  3. data/LICENSE +1 -1
  4. data/ParameterizedQueries README +6 -6
  5. data/README +38 -55
  6. data/ext/Makefile +269 -0
  7. data/ext/extconf.rb +34 -3
  8. data/ext/gil_release_version +3 -0
  9. data/ext/ibm_db-i386-mingw32.def +2 -0
  10. data/ext/ibm_db.c +100 -108
  11. data/ext/ibm_db.o +0 -0
  12. data/ext/ibm_db.so +0 -0
  13. data/ext/mkmf.log +110 -0
  14. data/ext/ruby_ibm_db_cli.o +0 -0
  15. data/ext/unicode_support_version +3 -0
  16. data/lib/active_record/connection_adapters/ibm_db_adapter.rb +923 -527
  17. data/lib/active_record/connection_adapters/ibmdb_adapter.rb +4 -1
  18. data/lib/mswin32/ibm_db.rb +7 -39
  19. data/lib/mswin32/rb2x/i386/ibm_db.so +0 -0
  20. data/test/active_record/connection_adapters/fake_adapter.rb +8 -5
  21. data/test/cases/adapter_test.rb +133 -58
  22. data/test/cases/adapters/mysql2/active_schema_test.rb +193 -0
  23. data/test/cases/adapters/mysql2/bind_parameter_test.rb +50 -0
  24. data/test/cases/adapters/mysql2/boolean_test.rb +100 -0
  25. data/test/cases/adapters/mysql2/case_sensitivity_test.rb +63 -0
  26. data/test/cases/adapters/mysql2/charset_collation_test.rb +54 -0
  27. data/test/cases/adapters/mysql2/connection_test.rb +210 -0
  28. data/test/cases/adapters/mysql2/datetime_precision_quoting_test.rb +45 -0
  29. data/test/cases/adapters/mysql2/enum_test.rb +26 -0
  30. data/test/cases/adapters/mysql2/explain_test.rb +21 -0
  31. data/test/cases/adapters/mysql2/json_test.rb +195 -0
  32. data/test/cases/adapters/mysql2/mysql2_adapter_test.rb +83 -0
  33. data/test/cases/adapters/mysql2/reserved_word_test.rb +152 -0
  34. data/test/cases/adapters/mysql2/schema_migrations_test.rb +59 -0
  35. data/test/cases/adapters/mysql2/schema_test.rb +126 -0
  36. data/test/cases/adapters/mysql2/sp_test.rb +36 -0
  37. data/test/cases/adapters/mysql2/sql_types_test.rb +14 -0
  38. data/test/cases/adapters/mysql2/table_options_test.rb +42 -0
  39. data/test/cases/adapters/mysql2/unsigned_type_test.rb +66 -0
  40. data/test/cases/adapters/postgresql/active_schema_test.rb +98 -0
  41. data/test/cases/adapters/postgresql/array_test.rb +339 -0
  42. data/test/cases/adapters/postgresql/bit_string_test.rb +82 -0
  43. data/test/cases/adapters/postgresql/bytea_test.rb +134 -0
  44. data/test/cases/adapters/postgresql/case_insensitive_test.rb +26 -0
  45. data/test/cases/adapters/postgresql/change_schema_test.rb +38 -0
  46. data/test/cases/adapters/postgresql/cidr_test.rb +25 -0
  47. data/test/cases/adapters/postgresql/citext_test.rb +78 -0
  48. data/test/cases/adapters/postgresql/collation_test.rb +53 -0
  49. data/test/cases/adapters/postgresql/composite_test.rb +132 -0
  50. data/test/cases/adapters/postgresql/connection_test.rb +257 -0
  51. data/test/cases/adapters/postgresql/datatype_test.rb +92 -0
  52. data/test/cases/adapters/postgresql/domain_test.rb +47 -0
  53. data/test/cases/adapters/postgresql/enum_test.rb +91 -0
  54. data/test/cases/adapters/postgresql/explain_test.rb +20 -0
  55. data/test/cases/adapters/postgresql/extension_migration_test.rb +63 -0
  56. data/test/cases/adapters/postgresql/full_text_test.rb +44 -0
  57. data/test/cases/adapters/postgresql/geometric_test.rb +378 -0
  58. data/test/cases/adapters/postgresql/hstore_test.rb +382 -0
  59. data/test/cases/adapters/postgresql/infinity_test.rb +69 -0
  60. data/test/cases/adapters/postgresql/integer_test.rb +25 -0
  61. data/test/cases/adapters/postgresql/json_test.rb +237 -0
  62. data/test/cases/adapters/postgresql/ltree_test.rb +53 -0
  63. data/test/cases/adapters/postgresql/money_test.rb +96 -0
  64. data/test/cases/adapters/postgresql/network_test.rb +94 -0
  65. data/test/cases/adapters/postgresql/numbers_test.rb +49 -0
  66. data/test/cases/adapters/postgresql/postgresql_adapter_test.rb +405 -0
  67. data/test/cases/adapters/postgresql/prepared_statements_test.rb +22 -0
  68. data/test/cases/adapters/postgresql/quoting_test.rb +44 -0
  69. data/test/cases/adapters/postgresql/range_test.rb +343 -0
  70. data/test/cases/adapters/postgresql/referential_integrity_test.rb +111 -0
  71. data/test/cases/adapters/postgresql/rename_table_test.rb +34 -0
  72. data/test/cases/adapters/postgresql/schema_authorization_test.rb +119 -0
  73. data/test/cases/adapters/postgresql/schema_test.rb +597 -0
  74. data/test/cases/adapters/postgresql/serial_test.rb +154 -0
  75. data/test/cases/adapters/postgresql/statement_pool_test.rb +41 -0
  76. data/test/cases/adapters/postgresql/timestamp_test.rb +90 -0
  77. data/test/cases/adapters/postgresql/type_lookup_test.rb +33 -0
  78. data/test/cases/adapters/postgresql/utils_test.rb +62 -0
  79. data/test/cases/adapters/postgresql/uuid_test.rb +294 -0
  80. data/test/cases/adapters/postgresql/xml_test.rb +54 -0
  81. data/test/cases/adapters/sqlite3/collation_test.rb +53 -0
  82. data/test/cases/adapters/sqlite3/copy_table_test.rb +98 -0
  83. data/test/cases/adapters/sqlite3/explain_test.rb +21 -0
  84. data/test/cases/adapters/sqlite3/quoting_test.rb +101 -0
  85. data/test/cases/adapters/sqlite3/sqlite3_adapter_test.rb +441 -0
  86. data/test/cases/adapters/sqlite3/sqlite3_create_folder_test.rb +24 -0
  87. data/test/cases/adapters/sqlite3/statement_pool_test.rb +20 -0
  88. data/test/cases/aggregations_test.rb +11 -1
  89. data/test/cases/ar_schema_test.rb +35 -50
  90. data/test/cases/associations/association_scope_test.rb +1 -6
  91. data/test/cases/associations/belongs_to_associations_test.rb +122 -10
  92. data/test/cases/associations/bidirectional_destroy_dependencies_test.rb +41 -0
  93. data/test/cases/associations/callbacks_test.rb +5 -7
  94. data/test/cases/associations/cascaded_eager_loading_test.rb +1 -1
  95. data/test/cases/associations/eager_load_nested_include_test.rb +1 -3
  96. data/test/cases/associations/eager_test.rb +158 -73
  97. data/test/cases/associations/extension_test.rb +7 -2
  98. data/test/cases/associations/has_and_belongs_to_many_associations_test.rb +64 -32
  99. data/test/cases/associations/has_many_associations_test.rb +362 -43
  100. data/test/cases/associations/has_many_through_associations_test.rb +108 -41
  101. data/test/cases/associations/has_one_associations_test.rb +105 -8
  102. data/test/cases/associations/has_one_through_associations_test.rb +6 -3
  103. data/test/cases/associations/inner_join_association_test.rb +3 -3
  104. data/test/cases/associations/inverse_associations_test.rb +38 -11
  105. data/test/cases/associations/join_model_test.rb +59 -36
  106. data/test/cases/associations/left_outer_join_association_test.rb +88 -0
  107. data/test/cases/associations/nested_through_associations_test.rb +2 -2
  108. data/test/cases/associations/required_test.rb +25 -5
  109. data/test/cases/associations_test.rb +39 -34
  110. data/test/cases/attribute_decorators_test.rb +9 -8
  111. data/test/cases/attribute_methods/read_test.rb +5 -5
  112. data/test/cases/attribute_methods_test.rb +97 -40
  113. data/test/cases/attribute_set_test.rb +64 -4
  114. data/test/cases/attribute_test.rb +84 -18
  115. data/test/cases/attributes_test.rb +151 -34
  116. data/test/cases/autosave_association_test.rb +149 -36
  117. data/test/cases/base_test.rb +290 -241
  118. data/test/cases/batches_test.rb +299 -22
  119. data/test/cases/binary_test.rb +2 -10
  120. data/test/cases/bind_parameter_test.rb +76 -66
  121. data/test/cases/cache_key_test.rb +26 -0
  122. data/test/cases/calculations_test.rb +167 -15
  123. data/test/cases/callbacks_test.rb +161 -68
  124. data/test/cases/coders/json_test.rb +15 -0
  125. data/test/cases/collection_cache_key_test.rb +115 -0
  126. data/test/cases/column_definition_test.rb +26 -57
  127. data/test/cases/comment_test.rb +145 -0
  128. data/test/cases/connection_adapters/adapter_leasing_test.rb +5 -3
  129. data/test/cases/connection_adapters/connection_handler_test.rb +128 -21
  130. data/test/cases/connection_adapters/connection_specification_test.rb +1 -1
  131. data/test/cases/connection_adapters/merge_and_resolve_default_url_config_test.rb +0 -38
  132. data/test/cases/connection_adapters/mysql_type_lookup_test.rb +5 -1
  133. data/test/cases/connection_adapters/schema_cache_test.rb +8 -3
  134. data/test/cases/connection_adapters/type_lookup_test.rb +15 -7
  135. data/test/cases/connection_management_test.rb +46 -56
  136. data/test/cases/connection_pool_test.rb +195 -20
  137. data/test/cases/connection_specification/resolver_test.rb +15 -0
  138. data/test/cases/counter_cache_test.rb +10 -5
  139. data/test/cases/custom_locking_test.rb +1 -1
  140. data/test/cases/database_statements_test.rb +18 -3
  141. data/test/cases/{invalid_date_test.rb → date_test.rb} +13 -1
  142. data/test/cases/date_time_precision_test.rb +107 -0
  143. data/test/cases/defaults_test.rb +85 -89
  144. data/test/cases/dirty_test.rb +30 -52
  145. data/test/cases/disconnected_test.rb +4 -2
  146. data/test/cases/enum_test.rb +178 -24
  147. data/test/cases/errors_test.rb +16 -0
  148. data/test/cases/explain_test.rb +32 -21
  149. data/test/cases/finder_test.rb +273 -148
  150. data/test/cases/fixture_set/file_test.rb +18 -0
  151. data/test/cases/fixtures_test.rb +112 -32
  152. data/test/cases/forbidden_attributes_protection_test.rb +69 -3
  153. data/test/cases/helper.rb +10 -16
  154. data/test/cases/hot_compatibility_test.rb +89 -1
  155. data/test/cases/inheritance_test.rb +284 -53
  156. data/test/cases/integration_test.rb +23 -7
  157. data/test/cases/invalid_connection_test.rb +4 -2
  158. data/test/cases/invertible_migration_test.rb +124 -32
  159. data/test/cases/json_serialization_test.rb +11 -2
  160. data/test/cases/locking_test.rb +22 -6
  161. data/test/cases/log_subscriber_test.rb +106 -17
  162. data/test/cases/migration/change_schema_test.rb +60 -114
  163. data/test/cases/migration/change_table_test.rb +34 -2
  164. data/test/cases/migration/column_attributes_test.rb +7 -23
  165. data/test/cases/migration/column_positioning_test.rb +8 -8
  166. data/test/cases/migration/columns_test.rb +17 -11
  167. data/test/cases/migration/command_recorder_test.rb +47 -2
  168. data/test/cases/migration/compatibility_test.rb +118 -0
  169. data/test/cases/migration/create_join_table_test.rb +21 -12
  170. data/test/cases/migration/foreign_key_test.rb +52 -18
  171. data/test/cases/migration/index_test.rb +14 -12
  172. data/test/cases/migration/logger_test.rb +1 -1
  173. data/test/cases/migration/pending_migrations_test.rb +0 -1
  174. data/test/cases/migration/references_foreign_key_test.rb +59 -7
  175. data/test/cases/migration/references_index_test.rb +4 -4
  176. data/test/cases/migration/references_statements_test.rb +26 -6
  177. data/test/cases/migration/rename_table_test.rb +25 -25
  178. data/test/cases/migration_test.rb +279 -81
  179. data/test/cases/migrator_test.rb +91 -8
  180. data/test/cases/mixin_test.rb +0 -2
  181. data/test/cases/modules_test.rb +3 -4
  182. data/test/cases/multiparameter_attributes_test.rb +24 -2
  183. data/test/cases/multiple_db_test.rb +11 -4
  184. data/test/cases/nested_attributes_test.rb +61 -33
  185. data/test/cases/persistence_test.rb +102 -10
  186. data/test/cases/pooled_connections_test.rb +3 -3
  187. data/test/cases/primary_keys_test.rb +170 -31
  188. data/test/cases/query_cache_test.rb +216 -96
  189. data/test/cases/quoting_test.rb +65 -19
  190. data/test/cases/readonly_test.rb +2 -1
  191. data/test/cases/reflection_test.rb +68 -22
  192. data/test/cases/relation/delegation_test.rb +3 -8
  193. data/test/cases/relation/merging_test.rb +10 -14
  194. data/test/cases/relation/mutation_test.rb +42 -24
  195. data/test/cases/relation/or_test.rb +92 -0
  196. data/test/cases/relation/predicate_builder_test.rb +4 -2
  197. data/test/cases/relation/record_fetch_warning_test.rb +40 -0
  198. data/test/cases/relation/where_chain_test.rb +23 -99
  199. data/test/cases/relation/where_clause_test.rb +182 -0
  200. data/test/cases/relation/where_test.rb +45 -23
  201. data/test/cases/relation_test.rb +67 -58
  202. data/test/cases/relations_test.rb +249 -38
  203. data/test/cases/result_test.rb +10 -0
  204. data/test/cases/sanitize_test.rb +108 -15
  205. data/test/cases/schema_dumper_test.rb +119 -125
  206. data/test/cases/schema_loading_test.rb +52 -0
  207. data/test/cases/scoping/default_scoping_test.rb +113 -39
  208. data/test/cases/scoping/named_scoping_test.rb +46 -9
  209. data/test/cases/scoping/relation_scoping_test.rb +47 -4
  210. data/test/cases/secure_token_test.rb +32 -0
  211. data/test/cases/serialization_test.rb +1 -1
  212. data/test/cases/serialized_attribute_test.rb +93 -6
  213. data/test/cases/statement_cache_test.rb +38 -0
  214. data/test/cases/store_test.rb +2 -1
  215. data/test/cases/suppressor_test.rb +63 -0
  216. data/test/cases/tasks/database_tasks_test.rb +73 -9
  217. data/test/cases/tasks/mysql_rake_test.rb +139 -118
  218. data/test/cases/tasks/postgresql_rake_test.rb +60 -6
  219. data/test/cases/tasks/sqlite_rake_test.rb +30 -3
  220. data/test/cases/test_case.rb +28 -20
  221. data/test/cases/test_fixtures_test.rb +36 -0
  222. data/test/cases/time_precision_test.rb +103 -0
  223. data/test/cases/timestamp_test.rb +44 -10
  224. data/test/cases/touch_later_test.rb +121 -0
  225. data/test/cases/transaction_callbacks_test.rb +128 -62
  226. data/test/cases/transaction_isolation_test.rb +2 -2
  227. data/test/cases/transactions_test.rb +61 -43
  228. data/test/cases/type/adapter_specific_registry_test.rb +133 -0
  229. data/test/cases/type/date_time_test.rb +14 -0
  230. data/test/cases/type/integer_test.rb +2 -96
  231. data/test/cases/type/string_test.rb +0 -14
  232. data/test/cases/type_test.rb +39 -0
  233. data/test/cases/types_test.rb +1 -118
  234. data/test/cases/unconnected_test.rb +1 -1
  235. data/test/cases/validations/absence_validation_test.rb +73 -0
  236. data/test/cases/validations/association_validation_test.rb +13 -2
  237. data/test/cases/validations/i18n_validation_test.rb +6 -10
  238. data/test/cases/validations/length_validation_test.rb +62 -30
  239. data/test/cases/validations/presence_validation_test.rb +36 -1
  240. data/test/cases/validations/uniqueness_validation_test.rb +128 -37
  241. data/test/cases/validations_repair_helper.rb +2 -6
  242. data/test/cases/validations_test.rb +36 -7
  243. data/test/cases/view_test.rb +102 -5
  244. data/test/cases/yaml_serialization_test.rb +21 -26
  245. data/test/config.example.yml +97 -0
  246. data/test/fixtures/bad_posts.yml +9 -0
  247. data/test/fixtures/books.yml +20 -0
  248. data/test/fixtures/content.yml +3 -0
  249. data/test/fixtures/content_positions.yml +3 -0
  250. data/test/fixtures/dead_parrots.yml +5 -0
  251. data/test/fixtures/live_parrots.yml +4 -0
  252. data/test/fixtures/naked/yml/parrots.yml +2 -0
  253. data/test/fixtures/naked/yml/trees.yml +3 -0
  254. data/test/fixtures/nodes.yml +29 -0
  255. data/test/fixtures/other_comments.yml +6 -0
  256. data/test/fixtures/other_dogs.yml +2 -0
  257. data/test/fixtures/other_posts.yml +7 -0
  258. data/test/fixtures/price_estimates.yml +10 -1
  259. data/test/fixtures/trees.yml +3 -0
  260. data/test/migrations/10_urban/9_add_expressions.rb +1 -1
  261. data/test/migrations/decimal/1_give_me_big_numbers.rb +1 -1
  262. data/test/migrations/magic/1_currencies_have_symbols.rb +1 -1
  263. data/test/migrations/missing/1000_people_have_middle_names.rb +2 -2
  264. data/test/migrations/missing/1_people_have_last_names.rb +2 -2
  265. data/test/migrations/missing/3_we_need_reminders.rb +2 -2
  266. data/test/migrations/missing/4_innocent_jointable.rb +2 -2
  267. data/test/migrations/rename/1_we_need_things.rb +2 -2
  268. data/test/migrations/rename/2_rename_things.rb +2 -2
  269. data/test/migrations/to_copy/1_people_have_hobbies.rb +1 -1
  270. data/test/migrations/to_copy/2_people_have_descriptions.rb +1 -1
  271. data/test/migrations/to_copy2/1_create_articles.rb +1 -1
  272. data/test/migrations/to_copy2/2_create_comments.rb +1 -1
  273. data/test/migrations/to_copy_with_name_collision/1_people_have_hobbies.rb +1 -1
  274. data/test/migrations/to_copy_with_timestamps/20090101010101_people_have_hobbies.rb +1 -1
  275. data/test/migrations/to_copy_with_timestamps/20090101010202_people_have_descriptions.rb +1 -1
  276. data/test/migrations/to_copy_with_timestamps2/20090101010101_create_articles.rb +1 -1
  277. data/test/migrations/to_copy_with_timestamps2/20090101010202_create_comments.rb +1 -1
  278. data/test/migrations/valid/1_valid_people_have_last_names.rb +1 -1
  279. data/test/migrations/valid/2_we_need_reminders.rb +2 -2
  280. data/test/migrations/valid/3_innocent_jointable.rb +2 -2
  281. data/test/migrations/valid_with_subdirectories/1_valid_people_have_last_names.rb +1 -1
  282. data/test/migrations/valid_with_subdirectories/sub/2_we_need_reminders.rb +2 -2
  283. data/test/migrations/valid_with_subdirectories/sub1/3_innocent_jointable.rb +2 -2
  284. data/test/migrations/valid_with_timestamps/20100101010101_valid_with_timestamps_people_have_last_names.rb +1 -1
  285. data/test/migrations/valid_with_timestamps/20100201010101_valid_with_timestamps_we_need_reminders.rb +1 -1
  286. data/test/migrations/valid_with_timestamps/20100301010101_valid_with_timestamps_innocent_jointable.rb +1 -1
  287. data/test/migrations/version_check/20131219224947_migration_version_check.rb +1 -1
  288. data/test/models/admin/randomly_named_c1.rb +6 -2
  289. data/test/models/aircraft.rb +1 -0
  290. data/test/models/author.rb +4 -7
  291. data/test/models/bird.rb +1 -1
  292. data/test/models/book.rb +5 -0
  293. data/test/models/bulb.rb +2 -1
  294. data/test/models/car.rb +3 -0
  295. data/test/models/cat.rb +10 -0
  296. data/test/models/chef.rb +1 -0
  297. data/test/models/club.rb +2 -0
  298. data/test/models/comment.rb +17 -5
  299. data/test/models/company.rb +4 -2
  300. data/test/models/company_in_module.rb +1 -1
  301. data/test/models/contact.rb +1 -1
  302. data/test/models/content.rb +40 -0
  303. data/test/models/customer.rb +8 -2
  304. data/test/models/developer.rb +19 -0
  305. data/test/models/face.rb +1 -1
  306. data/test/models/guitar.rb +4 -0
  307. data/test/models/hotel.rb +2 -0
  308. data/test/models/member.rb +1 -0
  309. data/test/models/member_detail.rb +4 -3
  310. data/test/models/mentor.rb +3 -0
  311. data/test/models/mocktail_designer.rb +2 -0
  312. data/test/models/node.rb +5 -0
  313. data/test/models/non_primary_key.rb +2 -0
  314. data/test/models/notification.rb +3 -0
  315. data/test/models/other_dog.rb +5 -0
  316. data/test/models/owner.rb +4 -1
  317. data/test/models/parrot.rb +6 -7
  318. data/test/models/person.rb +0 -1
  319. data/test/models/pet.rb +3 -0
  320. data/test/models/pet_treasure.rb +6 -0
  321. data/test/models/pirate.rb +3 -3
  322. data/test/models/post.rb +18 -9
  323. data/test/models/project.rb +9 -0
  324. data/test/models/randomly_named_c1.rb +1 -1
  325. data/test/models/recipe.rb +3 -0
  326. data/test/models/ship.rb +8 -2
  327. data/test/models/tag.rb +6 -0
  328. data/test/models/topic.rb +2 -8
  329. data/test/models/tree.rb +3 -0
  330. data/test/models/tuning_peg.rb +4 -0
  331. data/test/models/user.rb +14 -0
  332. data/test/models/uuid_item.rb +6 -0
  333. data/test/schema/mysql2_specific_schema.rb +33 -23
  334. data/test/schema/oracle_specific_schema.rb +1 -4
  335. data/test/schema/postgresql_specific_schema.rb +36 -124
  336. data/test/schema/schema.rb +170 -65
  337. data/test/schema/schema.rb.original +1057 -0
  338. data/test/schema/sqlite_specific_schema.rb +1 -5
  339. data/test/support/connection.rb +1 -0
  340. data/test/support/schema_dumping_helper.rb +1 -1
  341. data/test/support/yaml_compatibility_fixtures/rails_4_1.yml +22 -0
  342. data/test/support/yaml_compatibility_fixtures/rails_4_2_0.yml +182 -0
  343. metadata +146 -30
  344. data/lib/mswin32/rb19x/ibm_db.so +0 -0
  345. data/lib/mswin32/rb21x/i386/ibm_db.so +0 -0
  346. data/lib/mswin32/rb22x/i386/ibm_db.so +0 -0
  347. data/lib/mswin32/rb23x/i386/ibm_db.so +0 -0
  348. data/test/cases/associations/deprecated_counter_cache_on_has_many_through_test.rb +0 -26
  349. data/test/cases/attribute_methods/serialization_test.rb +0 -29
  350. data/test/cases/migration/change_schema_test - Copy.rb +0 -448
  351. data/test/cases/migration/foreign_key_test - Changed.rb +0 -325
  352. data/test/cases/migration/table_and_index_test.rb +0 -24
  353. data/test/cases/relation/where_test2.rb +0 -36
  354. data/test/cases/type/decimal_test.rb +0 -56
  355. data/test/cases/type/unsigned_integer_test.rb +0 -18
  356. data/test/cases/xml_serialization_test.rb +0 -457
  357. data/test/fixtures/naked/csv/accounts.csv +0 -1
  358. data/test/schema/mysql_specific_schema.rb +0 -70
@@ -1,4 +1,5 @@
1
1
  class Project < ActiveRecord::Base
2
+ belongs_to :mentor
2
3
  has_and_belongs_to_many :developers, -> { distinct.order 'developers.name desc, developers.id desc' }
3
4
  has_and_belongs_to_many :readonly_developers, -> { readonly }, :class_name => "Developer"
4
5
  has_and_belongs_to_many :non_unique_developers, -> { order 'developers.name desc, developers.id desc' }, :class_name => 'Developer'
@@ -14,6 +15,14 @@ class Project < ActiveRecord::Base
14
15
  belongs_to :firm
15
16
  has_one :lead_developer, through: :firm, inverse_of: :contracted_projects
16
17
 
18
+ begin
19
+ previous_value, ActiveRecord::Base.belongs_to_required_by_default =
20
+ ActiveRecord::Base.belongs_to_required_by_default, true
21
+ has_and_belongs_to_many :developers_required_by_default, class_name: "Developer"
22
+ ensure
23
+ ActiveRecord::Base.belongs_to_required_by_default = previous_value
24
+ end
25
+
17
26
  attr_accessor :developers_log
18
27
  after_initialize :set_developers_log
19
28
 
@@ -1,3 +1,3 @@
1
1
  class ClassNameThatDoesNotFollowCONVENTIONS < ActiveRecord::Base
2
- self.table_name = :randomly_named_table
2
+ self.table_name = :randomly_named_table1
3
3
  end
@@ -0,0 +1,3 @@
1
+ class Recipe < ActiveRecord::Base
2
+ belongs_to :chef
3
+ end
@@ -3,11 +3,12 @@ class Ship < ActiveRecord::Base
3
3
 
4
4
  belongs_to :pirate
5
5
  belongs_to :update_only_pirate, :class_name => 'Pirate'
6
+ belongs_to :developer, dependent: :destroy
6
7
  has_many :parts, :class_name => 'ShipPart'
7
8
  has_many :treasures
8
9
 
9
10
  accepts_nested_attributes_for :parts, :allow_destroy => true
10
- accepts_nested_attributes_for :pirate, :allow_destroy => true, :reject_if => proc { |attributes| attributes.empty? }
11
+ accepts_nested_attributes_for :pirate, :allow_destroy => true, :reject_if => proc(&:empty?)
11
12
  accepts_nested_attributes_for :update_only_pirate, :update_only => true
12
13
 
13
14
  validates_presence_of :name
@@ -15,17 +16,22 @@ class Ship < ActiveRecord::Base
15
16
  attr_accessor :cancel_save_from_callback
16
17
  before_save :cancel_save_callback_method, :if => :cancel_save_from_callback
17
18
  def cancel_save_callback_method
18
- false
19
+ throw(:abort)
19
20
  end
20
21
  end
21
22
 
22
23
  class ShipWithoutNestedAttributes < ActiveRecord::Base
23
24
  self.table_name = "ships"
25
+ has_many :prisoners, inverse_of: :ship, foreign_key: :ship_id
24
26
  has_many :parts, class_name: "ShipPart", foreign_key: :ship_id
25
27
 
26
28
  validates :name, presence: true
27
29
  end
28
30
 
31
+ class Prisoner < ActiveRecord::Base
32
+ belongs_to :ship, autosave: true, class_name: "ShipWithoutNestedAttributes", inverse_of: :prisoners
33
+ end
34
+
29
35
  class FamousShip < ActiveRecord::Base
30
36
  self.table_name = 'ships'
31
37
  belongs_to :famous_pirate
@@ -5,3 +5,9 @@ class Tag < ActiveRecord::Base
5
5
 
6
6
  has_many :tagged_posts, :through => :taggings, :source => 'taggable', :source_type => 'Post'
7
7
  end
8
+
9
+ class OrderedTag < Tag
10
+ self.table_name = "tags"
11
+
12
+ has_many :taggings, -> { order('taggings.id DESC') }, foreign_key: 'tag_id'
13
+ end
@@ -32,7 +32,7 @@ class Topic < ActiveRecord::Base
32
32
  end
33
33
  end
34
34
 
35
- has_many :replies, :dependent => :destroy, :foreign_key => "parent_id"
35
+ has_many :replies, dependent: :destroy, foreign_key: "parent_id", autosave: true
36
36
  has_many :approved_replies, -> { approved }, class_name: 'Reply', foreign_key: "parent_id", counter_cache: 'replies_count'
37
37
 
38
38
  has_many :unique_replies, :dependent => :destroy, :foreign_key => "parent_id"
@@ -43,12 +43,6 @@ class Topic < ActiveRecord::Base
43
43
  before_create :default_written_on
44
44
  before_destroy :destroy_children
45
45
 
46
- # Explicitly define as :date column so that returned Oracle DATE values would be typecasted to Date and not Time.
47
- # Some tests depend on assumption that this attribute will have Date values.
48
- if current_adapter?(:OracleEnhancedAdapter)
49
- set_date_columns :last_read
50
- end
51
-
52
46
  def parent
53
47
  Topic.find(parent_id)
54
48
  end
@@ -86,7 +80,7 @@ class Topic < ActiveRecord::Base
86
80
  end
87
81
 
88
82
  def destroy_children
89
- self.class.delete_all "parent_id = #{id}"
83
+ self.class.where("parent_id = #{id}").delete_all
90
84
  end
91
85
 
92
86
  def set_email_address
@@ -0,0 +1,3 @@
1
+ class Tree < ActiveRecord::Base
2
+ has_many :nodes, dependent: :destroy
3
+ end
@@ -0,0 +1,4 @@
1
+ class TuningPeg < ActiveRecord::Base
2
+ belongs_to :guitar
3
+ validates_numericality_of :pitch
4
+ end
@@ -0,0 +1,14 @@
1
+ require 'models/job'
2
+
3
+ class User < ActiveRecord::Base
4
+ has_secure_token
5
+ has_secure_token :auth_token
6
+
7
+ has_and_belongs_to_many :jobs_pool,
8
+ class_name: Job,
9
+ join_table: 'jobs_pool'
10
+ end
11
+
12
+ class UserWithNotification < User
13
+ after_create -> { Notification.create! message: "A new user has been created." }
14
+ end
@@ -0,0 +1,6 @@
1
+ class UuidItem < ActiveRecord::Base
2
+ end
3
+
4
+ class UuidValidatingItem < UuidItem
5
+ validates_uniqueness_of :uuid
6
+ end
@@ -1,28 +1,40 @@
1
1
  ActiveRecord::Schema.define do
2
+
3
+ if ActiveRecord::Base.connection.version >= '5.6.0'
4
+ create_table :datetime_defaults, force: true do |t|
5
+ t.datetime :modified_datetime, default: -> { 'CURRENT_TIMESTAMP' }
6
+ end
7
+ end
8
+
2
9
  create_table :binary_fields, force: true do |t|
3
10
  t.binary :var_binary, limit: 255
4
11
  t.binary :var_binary_large, limit: 4095
5
- t.column :tiny_blob, 'tinyblob', limit: 255
6
- t.binary :normal_blob, limit: 65535
7
- t.binary :medium_blob, limit: 16777215
8
- t.binary :long_blob, limit: 2147483647
9
- t.text :tiny_text, limit: 255
10
- t.text :normal_text, limit: 65535
11
- t.text :medium_text, limit: 16777215
12
- t.text :long_text, limit: 2147483647
13
- end
12
+ t.tinyblob :tiny_blob
13
+ t.blob :normal_blob
14
+ t.mediumblob :medium_blob
15
+ t.longblob :long_blob
16
+ t.tinytext :tiny_text
17
+ t.text :normal_text
18
+ t.mediumtext :medium_text
19
+ t.longtext :long_text
14
20
 
15
- add_index :binary_fields, :var_binary
21
+ t.index :var_binary
22
+ end
16
23
 
17
- create_table :key_tests, force: true, :options => 'ENGINE=MyISAM' do |t|
24
+ create_table :key_tests, force: true, options: 'ENGINE=MyISAM' do |t|
18
25
  t.string :awesome
19
26
  t.string :pizza
20
27
  t.string :snacks
28
+ t.index :awesome, type: :fulltext, name: 'index_key_tests_on_awesome'
29
+ t.index :pizza, using: :btree, name: 'index_key_tests_on_pizza'
30
+ t.index :snacks, name: 'index_key_tests_on_snack'
21
31
  end
22
32
 
23
- add_index :key_tests, :awesome, :type => :fulltext, :name => 'index_key_tests_on_awesome'
24
- add_index :key_tests, :pizza, :using => :btree, :name => 'index_key_tests_on_pizza'
25
- add_index :key_tests, :snacks, :name => 'index_key_tests_on_snack'
33
+ create_table :collation_tests, id: false, force: true do |t|
34
+ t.string :string_cs_column, limit: 1, collation: 'utf8_bin'
35
+ t.string :string_ci_column, limit: 1, collation: 'utf8_general_ci'
36
+ t.binary :binary_column, limit: 1
37
+ end
26
38
 
27
39
  ActiveRecord::Base.connection.execute <<-SQL
28
40
  DROP PROCEDURE IF EXISTS ten;
@@ -36,23 +48,21 @@ END
36
48
  SQL
37
49
 
38
50
  ActiveRecord::Base.connection.execute <<-SQL
39
- DROP TABLE IF EXISTS collation_tests;
51
+ DROP PROCEDURE IF EXISTS topics;
40
52
  SQL
41
53
 
42
54
  ActiveRecord::Base.connection.execute <<-SQL
43
- CREATE TABLE collation_tests (
44
- string_cs_column VARCHAR(1) COLLATE utf8_bin,
45
- string_ci_column VARCHAR(1) COLLATE utf8_general_ci
46
- ) CHARACTER SET utf8 COLLATE utf8_general_ci
55
+ CREATE PROCEDURE topics(IN num INT) SQL SECURITY INVOKER
56
+ BEGIN
57
+ select * from topics limit num;
58
+ END
47
59
  SQL
48
60
 
49
- ActiveRecord::Base.connection.execute <<-SQL
50
- DROP TABLE IF EXISTS enum_tests;
51
- SQL
61
+ ActiveRecord::Base.connection.drop_table "enum_tests", if_exists: true
52
62
 
53
63
  ActiveRecord::Base.connection.execute <<-SQL
54
64
  CREATE TABLE enum_tests (
55
- enum_column ENUM('text','blob','tiny','medium','long')
65
+ enum_column ENUM('text','blob','tiny','medium','long','unsigned','bigint')
56
66
  )
57
67
  SQL
58
68
  end
@@ -32,10 +32,7 @@ create sequence test_oracle_defaults_seq minvalue 10000
32
32
  fixed_time date default TO_DATE('2004-01-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS'),
33
33
  char1 varchar2(1) default 'Y',
34
34
  char2 varchar2(50) default 'a varchar field',
35
- char3 clob default 'a text field',
36
- positive_integer integer default 1,
37
- negative_integer integer default -1,
38
- decimal_number number(3,2) default 2.78
35
+ char3 clob default 'a text field'
39
36
  )
40
37
  SQL
41
38
  execute "create sequence defaults_seq minvalue 10000"
@@ -1,10 +1,35 @@
1
1
  ActiveRecord::Schema.define do
2
2
 
3
- %w(postgresql_tsvectors postgresql_hstores postgresql_arrays postgresql_moneys postgresql_numbers postgresql_times
4
- postgresql_network_addresses postgresql_uuids postgresql_ltrees postgresql_oids postgresql_xml_data_type defaults
5
- geometrics postgresql_timestamp_with_zones postgresql_partitioned_table postgresql_partitioned_table_parent
6
- postgresql_citext).each do |table_name|
7
- execute "DROP TABLE IF EXISTS #{quote_table_name table_name}"
3
+ enable_extension!('uuid-ossp', ActiveRecord::Base.connection)
4
+
5
+ create_table :uuid_parents, id: :uuid, force: true do |t|
6
+ t.string :name
7
+ end
8
+
9
+ create_table :uuid_children, id: :uuid, force: true do |t|
10
+ t.string :name
11
+ t.uuid :uuid_parent_id
12
+ end
13
+
14
+ create_table :defaults, force: true do |t|
15
+ t.date :modified_date, default: -> { 'CURRENT_DATE' }
16
+ t.date :modified_date_function, default: -> { 'now()' }
17
+ t.date :fixed_date, default: '2004-01-01'
18
+ t.datetime :modified_time, default: -> { 'CURRENT_TIMESTAMP' }
19
+ t.datetime :modified_time_function, default: -> { 'now()' }
20
+ t.datetime :fixed_time, default: '2004-01-01 00:00:00.000000-00'
21
+ t.column :char1, 'char(1)', default: 'Y'
22
+ t.string :char2, limit: 50, default: 'a varchar field'
23
+ t.text :char3, default: 'a text field'
24
+ t.bigint :bigint_default, default: -> { '0::bigint' }
25
+ t.text :multiline_default, default: '--- []
26
+
27
+ '
28
+ end
29
+
30
+ %w(postgresql_times postgresql_oids postgresql_timestamp_with_zones
31
+ postgresql_partitioned_table postgresql_partitioned_table_parent).each do |table_name|
32
+ drop_table table_name, if_exists: true
8
33
  end
9
34
 
10
35
  execute 'DROP SEQUENCE IF EXISTS companies_nonstd_seq CASCADE'
@@ -14,110 +39,10 @@ ActiveRecord::Schema.define do
14
39
 
15
40
  execute 'DROP FUNCTION IF EXISTS partitioned_insert_trigger()'
16
41
 
17
- execute "DROP SCHEMA IF EXISTS schema_1 CASCADE"
18
-
19
42
  %w(accounts_id_seq developers_id_seq projects_id_seq topics_id_seq customers_id_seq orders_id_seq).each do |seq_name|
20
43
  execute "SELECT setval('#{seq_name}', 100)"
21
44
  end
22
45
 
23
- execute <<_SQL
24
- CREATE TABLE defaults (
25
- id serial primary key,
26
- modified_date date default CURRENT_DATE,
27
- modified_date_function date default now(),
28
- fixed_date date default '2004-01-01',
29
- modified_time timestamp default CURRENT_TIMESTAMP,
30
- modified_time_function timestamp default now(),
31
- fixed_time timestamp default '2004-01-01 00:00:00.000000-00',
32
- char1 char(1) default 'Y',
33
- char2 character varying(50) default 'a varchar field',
34
- char3 text default 'a text field',
35
- positive_integer integer default 1,
36
- negative_integer integer default -1,
37
- bigint_default bigint default 0::bigint,
38
- decimal_number decimal(3,2) default 2.78,
39
- multiline_default text DEFAULT '--- []
40
-
41
- '::text
42
- );
43
- _SQL
44
-
45
- execute "CREATE SCHEMA schema_1"
46
- execute "CREATE DOMAIN schema_1.text AS text"
47
- execute "CREATE DOMAIN schema_1.varchar AS varchar"
48
- execute "CREATE DOMAIN schema_1.bpchar AS bpchar"
49
-
50
- execute <<_SQL
51
- CREATE TABLE geometrics (
52
- id serial primary key,
53
- a_point point,
54
- -- a_line line, (the line type is currently not implemented in postgresql)
55
- a_line_segment lseg,
56
- a_box box,
57
- a_path path,
58
- a_polygon polygon,
59
- a_circle circle
60
- );
61
- _SQL
62
-
63
- execute <<_SQL
64
- CREATE TABLE postgresql_arrays (
65
- id SERIAL PRIMARY KEY,
66
- commission_by_quarter INTEGER[],
67
- nicknames TEXT[]
68
- );
69
- _SQL
70
-
71
- execute <<_SQL
72
- CREATE TABLE postgresql_uuids (
73
- id SERIAL PRIMARY KEY,
74
- guid uuid,
75
- compact_guid uuid
76
- );
77
- _SQL
78
-
79
- execute <<_SQL
80
- CREATE TABLE postgresql_tsvectors (
81
- id SERIAL PRIMARY KEY,
82
- text_vector tsvector
83
- );
84
- _SQL
85
-
86
- if 't' == select_value("select 'hstore'=ANY(select typname from pg_type)")
87
- execute <<_SQL
88
- CREATE TABLE postgresql_hstores (
89
- id SERIAL PRIMARY KEY,
90
- hash_store hstore default ''::hstore
91
- );
92
- _SQL
93
- end
94
-
95
- if 't' == select_value("select 'ltree'=ANY(select typname from pg_type)")
96
- execute <<_SQL
97
- CREATE TABLE postgresql_ltrees (
98
- id SERIAL PRIMARY KEY,
99
- path ltree
100
- );
101
- _SQL
102
- end
103
-
104
- if 't' == select_value("select 'citext'=ANY(select typname from pg_type)")
105
- execute <<_SQL
106
- CREATE TABLE postgresql_citext (
107
- id SERIAL PRIMARY KEY,
108
- text_citext citext default ''::citext
109
- );
110
- _SQL
111
- end
112
-
113
- execute <<_SQL
114
- CREATE TABLE postgresql_numbers (
115
- id SERIAL PRIMARY KEY,
116
- single REAL,
117
- double DOUBLE PRECISION
118
- );
119
- _SQL
120
-
121
46
  execute <<_SQL
122
47
  CREATE TABLE postgresql_times (
123
48
  id SERIAL PRIMARY KEY,
@@ -126,15 +51,6 @@ _SQL
126
51
  );
127
52
  _SQL
128
53
 
129
- execute <<_SQL
130
- CREATE TABLE postgresql_network_addresses (
131
- id SERIAL PRIMARY KEY,
132
- cidr_address CIDR default '192.168.1.0/24',
133
- inet_address INET default '192.168.1.1',
134
- mac_address MACADDR default 'ff:ff:ff:ff:ff:ff'
135
- );
136
- _SQL
137
-
138
54
  execute <<_SQL
139
55
  CREATE TABLE postgresql_oids (
140
56
  id SERIAL PRIMARY KEY,
@@ -180,16 +96,6 @@ _SQL
180
96
  end
181
97
  end
182
98
 
183
- begin
184
- execute <<_SQL
185
- CREATE TABLE postgresql_xml_data_type (
186
- id SERIAL PRIMARY KEY,
187
- data xml
188
- );
189
- _SQL
190
- rescue #This version of PostgreSQL either has no XML support or is was not compiled with XML support: skipping table
191
- end
192
-
193
99
  # This table is to verify if the :limit option is being ignored for text and binary columns
194
100
  create_table :limitless_fields, force: true do |t|
195
101
  t.binary :binary, limit: 100_000
@@ -198,5 +104,11 @@ _SQL
198
104
 
199
105
  create_table :bigint_array, force: true do |t|
200
106
  t.integer :big_int_data_points, limit: 8, array: true
107
+ t.decimal :decimal_array_default, array: true, default: [1.23, 3.45]
108
+ end
109
+
110
+ create_table :uuid_items, force: true, id: false do |t|
111
+ t.uuid :uuid, primary_key: true
112
+ t.string :title
201
113
  end
202
114
  end
@@ -1,26 +1,4 @@
1
- # encoding: utf-8
2
-
3
1
  ActiveRecord::Schema.define do
4
- def except(adapter_names_to_exclude)
5
- unless [adapter_names_to_exclude].flatten.include?(adapter_name)
6
- yield
7
- end
8
- end
9
-
10
- #put adapter specific setup here
11
- case adapter_name
12
- when "PostgreSQL"
13
- enable_extension!('uuid-ossp', ActiveRecord::Base.connection)
14
- create_table :uuid_parents, id: :uuid, force: true do |t|
15
- t.string :name
16
- end
17
- create_table :uuid_children, id: :uuid, force: true do |t|
18
- t.string :name
19
- t.uuid :uuid_parent_id
20
- end
21
- end
22
-
23
-
24
2
  # ------------------------------------------------------------------- #
25
3
  # #
26
4
  # Please keep these create table statements in alphabetical order #
@@ -52,6 +30,7 @@ ActiveRecord::Schema.define do
52
30
 
53
31
  create_table :aircraft, force: true do |t|
54
32
  t.string :name
33
+ t.integer :wheels_count, default: 0, null: false
55
34
  end
56
35
 
57
36
  create_table :articles, force: true do |t|
@@ -115,6 +94,11 @@ ActiveRecord::Schema.define do
115
94
  t.column :status, :integer, default: 0
116
95
  t.column :read_status, :integer, default: 0
117
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'
118
102
  end
119
103
 
120
104
  create_table :booleans, force: true do |t|
@@ -125,11 +109,11 @@ ActiveRecord::Schema.define do
125
109
  create_table :bulbs, force: true do |t|
126
110
  t.integer :car_id
127
111
  t.string :name
128
- t.boolean :frickinawesome
112
+ t.boolean :frickinawesome, default: false
129
113
  t.string :color
130
114
  end
131
115
 
132
- create_table "camelcase", force: true do |t|
116
+ create_table "CamelCase", force: true do |t|
133
117
  t.string :name
134
118
  end
135
119
 
@@ -201,6 +185,7 @@ ActiveRecord::Schema.define do
201
185
  t.string :resource_id
202
186
  t.string :resource_type
203
187
  t.integer :developer_id
188
+ t.datetime :deleted_at
204
189
  end
205
190
 
206
191
  create_table :companies, force: true do |t|
@@ -212,11 +197,19 @@ ActiveRecord::Schema.define do
212
197
  t.integer :rating, default: 1
213
198
  t.integer :account_id
214
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
215
208
  end
216
209
 
217
- add_index :companies, [:firm_id, :type, :rating], name: "company_index"
218
- add_index :companies, [:firm_id, :type], name: "company_partial_index", where: "rating > 10"
219
- add_index :companies, :name, name: 'company_name_index', using: :btree
210
+ create_table :content_positions, force: true do |t|
211
+ t.integer :content_id
212
+ end
220
213
 
221
214
  create_table :vegetables, force: true do |t|
222
215
  t.string :name
@@ -261,12 +254,21 @@ ActiveRecord::Schema.define do
261
254
 
262
255
  create_table :developers, force: true do |t|
263
256
  t.string :name
257
+ t.string :first_name
264
258
  t.integer :salary, default: 70000
265
- t.integer :firm_id
266
- t.datetime :created_at
267
- t.datetime :updated_at
268
- t.datetime :created_on
269
- t.datetime :updated_on
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
270
272
  end
271
273
 
272
274
  create_table :developers_projects, force: true, id: false do |t|
@@ -297,8 +299,8 @@ ActiveRecord::Schema.define do
297
299
  create_table :edges, force: true, id: false do |t|
298
300
  t.column :source_id, :integer, null: false
299
301
  t.column :sink_id, :integer, null: false
302
+ t.index [:source_id, :sink_id], unique: true, name: 'unique_edge_index'
300
303
  end
301
- add_index :edges, [:source_id, :sink_id], unique: true, name: 'unique_edge_index'
302
304
 
303
305
  create_table :engines, force: true do |t|
304
306
  t.integer :car_id
@@ -350,6 +352,10 @@ ActiveRecord::Schema.define do
350
352
  t.column :key, :string
351
353
  end
352
354
 
355
+ create_table :guitars, force: true do |t|
356
+ t.string :color
357
+ end
358
+
353
359
  create_table :inept_wizards, force: true do |t|
354
360
  t.column :name, :string, null: false
355
361
  t.column :city, :string, null: false
@@ -365,7 +371,11 @@ ActiveRecord::Schema.define do
365
371
 
366
372
  create_table :invoices, force: true do |t|
367
373
  t.integer :balance
368
- t.datetime :updated_at
374
+ if subsecond_precision_supported?
375
+ t.datetime :updated_at, precision: 6
376
+ else
377
+ t.datetime :updated_at
378
+ end
369
379
  end
370
380
 
371
381
  create_table :iris, force: true do |t|
@@ -381,6 +391,11 @@ ActiveRecord::Schema.define do
381
391
  t.integer :ideal_reference_id
382
392
  end
383
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
+
384
399
  create_table :keyboards, force: true, id: false do |t|
385
400
  t.primary_key :key_number
386
401
  t.string :name
@@ -400,6 +415,14 @@ ActiveRecord::Schema.define do
400
415
  t.references :student
401
416
  end
402
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
+
403
426
  create_table :lint_models, force: true
404
427
 
405
428
  create_table :line_items, force: true do |t|
@@ -407,6 +430,11 @@ ActiveRecord::Schema.define do
407
430
  t.integer :amount
408
431
  end
409
432
 
433
+ create_table :lions, force: true do |t|
434
+ t.integer :gender
435
+ t.boolean :is_vegetarian, default: false
436
+ end
437
+
410
438
  create_table :lock_without_defaults, force: true do |t|
411
439
  t.column :lock_version, :integer
412
440
  end
@@ -451,6 +479,10 @@ ActiveRecord::Schema.define do
451
479
  t.string :name
452
480
  end
453
481
 
482
+ create_table :mentors, force: true do |t|
483
+ t.string :name
484
+ end
485
+
454
486
  create_table :minivans, force: true, id: false do |t|
455
487
  t.string :minivan_id
456
488
  t.string :name
@@ -462,8 +494,8 @@ ActiveRecord::Schema.define do
462
494
  end
463
495
 
464
496
  create_table :mixed_case_monkeys, force: true, id: false do |t|
465
- t.primary_key :monkeyid
466
- t.integer :fleacount
497
+ t.primary_key :monkeyID
498
+ t.integer :fleaCount
467
499
  end
468
500
 
469
501
  create_table :mixins, force: true do |t|
@@ -482,6 +514,10 @@ ActiveRecord::Schema.define do
482
514
  t.string :name
483
515
  end
484
516
 
517
+ create_table :notifications, force: true do |t|
518
+ t.string :message
519
+ end
520
+
485
521
  create_table :numeric_data, force: true do |t|
486
522
  t.decimal :bank_balance, precision: 10, scale: 2
487
523
  t.decimal :big_bank_balance, precision: 15, scale: 2
@@ -492,8 +528,10 @@ ActiveRecord::Schema.define do
492
528
  # Oracle/SQLServer supports precision up to 38
493
529
  if current_adapter?(:OracleAdapter, :SQLServerAdapter)
494
530
  t.decimal :atoms_in_universe, precision: 38, scale: 0
495
- elsif current_adapter?(:IBM_DBAdapter)
531
+ elsif current_adapter?(:IBM_DBAdapter)
496
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
497
535
  else
498
536
  t.decimal :atoms_in_universe, precision: 55, scale: 0
499
537
  end
@@ -511,7 +549,11 @@ ActiveRecord::Schema.define do
511
549
 
512
550
  create_table :owners, primary_key: :owner_id, force: true do |t|
513
551
  t.string :name
514
- t.column :updated_at, :datetime
552
+ if subsecond_precision_supported?
553
+ t.column :updated_at, :datetime, precision: 6
554
+ else
555
+ t.column :updated_at, :datetime
556
+ end
515
557
  t.column :happy_at, :datetime
516
558
  t.string :essay_id
517
559
  end
@@ -529,10 +571,18 @@ ActiveRecord::Schema.define do
529
571
  t.column :color, :string
530
572
  t.column :parrot_sti_class, :string
531
573
  t.column :killer_id, :integer
532
- t.column :created_at, :datetime
533
- t.column :created_on, :datetime
534
- t.column :updated_at, :datetime
535
- t.column :updated_on, :datetime
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
536
586
  end
537
587
 
538
588
  create_table :parrots_pirates, id: false, force: true do |t|
@@ -575,15 +625,30 @@ ActiveRecord::Schema.define do
575
625
  create_table :pets, primary_key: :pet_id, force: true do |t|
576
626
  t.string :name
577
627
  t.integer :owner_id, :integer
578
- t.timestamps null: false
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
579
639
  end
580
640
 
581
641
  create_table :pirates, force: true do |t|
582
642
  t.column :catchphrase, :string
583
643
  t.column :parrot_id, :integer
584
644
  t.integer :non_validated_parrot_id
585
- t.column :created_on, :datetime
586
- t.column :updated_on, :datetime
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
587
652
  end
588
653
 
589
654
  create_table :posts, force: true do |t|
@@ -635,9 +700,20 @@ ActiveRecord::Schema.define do
635
700
  t.string :name
636
701
  t.string :type
637
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
638
709
  end
639
710
 
640
- create_table :randomly_named_table, force: true do |t|
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|
641
717
  t.string :some_attribute
642
718
  t.integer :another_attribute
643
719
  end
@@ -671,6 +747,7 @@ ActiveRecord::Schema.define do
671
747
  create_table :ships, force: true do |t|
672
748
  t.string :name
673
749
  t.integer :pirate_id
750
+ t.belongs_to :developer
674
751
  t.integer :update_only_pirate_id
675
752
  # Conventionally named column for counter_cache
676
753
  t.integer :treasures_count, default: 0
@@ -683,6 +760,15 @@ ActiveRecord::Schema.define do
683
760
  create_table :ship_parts, force: true do |t|
684
761
  t.string :name
685
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
686
772
  end
687
773
 
688
774
  create_table :shop_accounts, force: true do |t|
@@ -708,18 +794,12 @@ ActiveRecord::Schema.define do
708
794
  t.integer :lock_version, null: false, default: 0
709
795
  end
710
796
 
711
- create_table :students, force: true do |t|
712
- t.string :name
713
- t.boolean :active
714
- t.integer :college_id
715
- end
716
-
717
797
  create_table :subscribers, force: true, id: false do |t|
718
798
  t.string :nick, null: false
719
799
  t.string :name
720
800
  t.column :books_count, :integer, null: false, default: 0
801
+ t.index :nick, unique: true
721
802
  end
722
- add_index :subscribers, :nick, unique: true
723
803
 
724
804
  create_table :subscriptions, force: true do |t|
725
805
  t.string :subscriber_id
@@ -748,7 +828,7 @@ ActiveRecord::Schema.define do
748
828
  t.string :title, limit: 250
749
829
  t.string :author_name
750
830
  t.string :author_email_address
751
- if mysql_56?
831
+ if subsecond_precision_supported?
752
832
  t.datetime :written_on, precision: 6
753
833
  else
754
834
  t.datetime :written_on
@@ -771,7 +851,11 @@ ActiveRecord::Schema.define do
771
851
  t.string :parent_title
772
852
  t.string :type
773
853
  t.string :group
774
- t.timestamps null: true
854
+ if subsecond_precision_supported?
855
+ t.timestamps null: true, precision: 6
856
+ else
857
+ t.timestamps null: true
858
+ end
775
859
  end
776
860
 
777
861
  create_table :toys, primary_key: :toy_id, force: true do |t|
@@ -796,6 +880,11 @@ ActiveRecord::Schema.define do
796
880
  t.belongs_to :ship
797
881
  end
798
882
 
883
+ create_table :tuning_pegs, force: true do |t|
884
+ t.integer :guitar_id
885
+ t.float :pitch
886
+ end
887
+
799
888
  create_table :tyres, force: true do |t|
800
889
  t.integer :car_id
801
890
  end
@@ -857,7 +946,7 @@ ActiveRecord::Schema.define do
857
946
  t.string :treaty_id
858
947
  t.string :name
859
948
  end
860
- create_table :countries_treaties, force: true, id: false do |t|
949
+ create_table :countries_treaties, force: true, primary_key: [:country_id, :treaty_id] do |t|
861
950
  t.string :country_id, null: false
862
951
  t.string :treaty_id, null: false
863
952
  end
@@ -874,15 +963,17 @@ ActiveRecord::Schema.define do
874
963
  t.string :name
875
964
  end
876
965
  create_table :weirds, force: true do |t|
877
- #t.string 'a$b'
878
- #t.string 'なまえ'
879
- #t.string 'from'
880
-
881
- t.string 'test1'
882
- t.string 'test2'
883
- t.string 'test3'
966
+ t.string 'a$b'
967
+ t.string 'なまえ'
968
+ t.string 'from'
884
969
  end
885
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
886
977
  create_table :trees, force: true do |t|
887
978
  t.string :name
888
979
  t.datetime :updated_at
@@ -904,11 +995,15 @@ ActiveRecord::Schema.define do
904
995
  t.string :employable_list_type
905
996
  t.integer :employable_list_id
906
997
  end
998
+ create_table :recipes, force: true do |t|
999
+ t.integer :chef_id
1000
+ t.integer :hotel_id
1001
+ end
907
1002
 
908
1003
  create_table :records, force: true do |t|
909
1004
  end
910
1005
 
911
- except 'SQLite' do
1006
+ if supports_foreign_keys?
912
1007
  # fk_test_has_fk should be before fk_test_has_pk
913
1008
  create_table :fk_test_has_fk, force: true do |t|
914
1009
  t.integer :fk_id, null: false
@@ -918,7 +1013,6 @@ ActiveRecord::Schema.define do
918
1013
  end
919
1014
 
920
1015
  add_foreign_key :fk_test_has_fk, :fk_test_has_pk, column: "fk_id", name: "fk_name", primary_key: "pk_id"
921
- add_foreign_key :lessons_students, :students
922
1016
  end
923
1017
 
924
1018
  create_table :overloaded_types, force: true do |t|
@@ -928,9 +1022,18 @@ ActiveRecord::Schema.define do
928
1022
  t.string :string_with_default, default: 'the original default'
929
1023
  end
930
1024
 
1025
+ create_table :users, force: true do |t|
1026
+ t.string :token
1027
+ t.string :auth_token
1028
+ end
1029
+
931
1030
  create_table :test_with_keyword_column_name, force: true do |t|
932
1031
  t.string :desc
933
1032
  end
1033
+
1034
+ create_table :non_primary_keys, force: true, id: false do |t|
1035
+ t.integer :id
1036
+ end
934
1037
  end
935
1038
 
936
1039
  Course.connection.create_table :courses, force: true do |t|
@@ -950,3 +1053,5 @@ Professor.connection.create_table :courses_professors, id: false, force: true do
950
1053
  t.references :course
951
1054
  t.references :professor
952
1055
  end
1056
+
1057
+ OtherDog.connection.create_table :dogs, force: true