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

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 (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