ibm_db 5.1.0-x86-mingw32 → 5.3.2-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 (624) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES +9 -0
  3. data/LICENSE +55 -18
  4. data/ext/Makefile +14 -14
  5. data/ext/extconf.rb +4 -4
  6. data/ext/ibm_db.c +62 -57
  7. data/ext/ibm_db.o +0 -0
  8. data/ext/ibm_db.so +0 -0
  9. data/ext/mkmf.log +11 -11
  10. data/ext/ruby_ibm_db_cli.c +1 -0
  11. data/ext/ruby_ibm_db_cli.o +0 -0
  12. data/lib/active_record/connection_adapters/ibm_db_adapter.rb +1463 -1279
  13. data/lib/ibm_db.so +1 -0
  14. data/lib/mswin32/ibm_db.rb +7 -3
  15. data/lib/mswin32/rb2x/i386/ruby25/ibm_db.so +0 -0
  16. data/lib/mswin32/rb3x/i386/ruby30/ibm_db.so +0 -0
  17. data/test/active_record/connection_adapters/fake_adapter.rb +5 -2
  18. data/test/activejob/destroy_association_async_test.rb +305 -0
  19. data/test/activejob/destroy_async_job_not_present_test.rb +31 -0
  20. data/test/activejob/helper.rb +15 -0
  21. data/test/assets/schema_dump_5_1.yml +345 -0
  22. data/test/cases/adapter_prevent_writes_test.rb +334 -0
  23. data/test/cases/adapter_test.rb +432 -218
  24. data/test/cases/adapters/mysql2/active_schema_test.rb +85 -75
  25. data/test/cases/adapters/mysql2/auto_increment_test.rb +34 -0
  26. data/test/cases/adapters/mysql2/bind_parameter_test.rb +5 -3
  27. data/test/cases/adapters/mysql2/boolean_test.rb +6 -4
  28. data/test/cases/adapters/mysql2/case_sensitivity_test.rb +26 -24
  29. data/test/cases/adapters/mysql2/charset_collation_test.rb +20 -17
  30. data/test/cases/adapters/mysql2/connection_test.rb +48 -50
  31. data/test/cases/adapters/mysql2/count_deleted_rows_with_lock_test.rb +28 -0
  32. data/test/cases/adapters/mysql2/datetime_precision_quoting_test.rb +23 -19
  33. data/test/cases/adapters/mysql2/enum_test.rb +32 -11
  34. data/test/cases/adapters/mysql2/explain_test.rb +13 -11
  35. data/test/cases/adapters/mysql2/json_test.rb +17 -188
  36. data/test/cases/adapters/mysql2/mysql2_adapter_prevent_writes_test.rb +208 -0
  37. data/test/cases/adapters/mysql2/mysql2_adapter_test.rb +183 -28
  38. data/test/cases/adapters/mysql2/nested_deadlock_test.rb +75 -0
  39. data/test/cases/adapters/mysql2/optimizer_hints_test.rb +69 -0
  40. data/test/cases/adapters/mysql2/schema_migrations_test.rb +26 -21
  41. data/test/cases/adapters/mysql2/schema_test.rb +24 -22
  42. data/test/cases/adapters/mysql2/set_test.rb +32 -0
  43. data/test/cases/adapters/mysql2/sp_test.rb +10 -8
  44. data/test/cases/adapters/mysql2/sql_types_test.rb +8 -6
  45. data/test/cases/adapters/mysql2/table_options_test.rb +93 -10
  46. data/test/cases/adapters/mysql2/transaction_test.rb +151 -0
  47. data/test/cases/adapters/mysql2/unsigned_type_test.rb +11 -9
  48. data/test/cases/adapters/mysql2/virtual_column_test.rb +66 -0
  49. data/test/cases/adapters/postgresql/active_schema_test.rb +40 -25
  50. data/test/cases/adapters/postgresql/array_test.rb +118 -63
  51. data/test/cases/adapters/postgresql/bit_string_test.rb +12 -10
  52. data/test/cases/adapters/postgresql/bytea_test.rb +26 -25
  53. data/test/cases/adapters/postgresql/case_insensitive_test.rb +10 -9
  54. data/test/cases/adapters/postgresql/change_schema_test.rb +7 -5
  55. data/test/cases/adapters/postgresql/cidr_test.rb +2 -0
  56. data/test/cases/adapters/postgresql/citext_test.rb +58 -58
  57. data/test/cases/adapters/postgresql/collation_test.rb +17 -15
  58. data/test/cases/adapters/postgresql/composite_test.rb +25 -23
  59. data/test/cases/adapters/postgresql/connection_test.rb +73 -85
  60. data/test/cases/adapters/postgresql/create_unlogged_tables_test.rb +74 -0
  61. data/test/cases/adapters/postgresql/datatype_test.rb +19 -22
  62. data/test/cases/adapters/postgresql/date_test.rb +42 -0
  63. data/test/cases/adapters/postgresql/domain_test.rb +9 -7
  64. data/test/cases/adapters/postgresql/enum_test.rb +12 -10
  65. data/test/cases/adapters/postgresql/explain_test.rb +10 -8
  66. data/test/cases/adapters/postgresql/extension_migration_test.rb +13 -12
  67. data/test/cases/adapters/postgresql/foreign_table_test.rb +109 -0
  68. data/test/cases/adapters/postgresql/full_text_test.rb +8 -6
  69. data/test/cases/adapters/postgresql/geometric_test.rb +57 -63
  70. data/test/cases/adapters/postgresql/hstore_test.rb +288 -280
  71. data/test/cases/adapters/postgresql/infinity_test.rb +54 -15
  72. data/test/cases/adapters/postgresql/integer_test.rb +2 -0
  73. data/test/cases/adapters/postgresql/interval_test.rb +99 -0
  74. data/test/cases/adapters/postgresql/json_test.rb +16 -201
  75. data/test/cases/adapters/postgresql/ltree_test.rb +14 -16
  76. data/test/cases/adapters/postgresql/money_test.rb +47 -16
  77. data/test/cases/adapters/postgresql/network_test.rb +36 -28
  78. data/test/cases/adapters/postgresql/numbers_test.rb +7 -5
  79. data/test/cases/adapters/postgresql/optimizer_hints_test.rb +71 -0
  80. data/test/cases/adapters/postgresql/partitions_test.rb +22 -0
  81. data/test/cases/adapters/postgresql/postgresql_adapter_prevent_writes_test.rb +205 -0
  82. data/test/cases/adapters/postgresql/postgresql_adapter_test.rb +178 -136
  83. data/test/cases/adapters/postgresql/prepared_statements_disabled_test.rb +27 -0
  84. data/test/cases/adapters/postgresql/quoting_test.rb +12 -6
  85. data/test/cases/adapters/postgresql/range_test.rb +406 -292
  86. data/test/cases/adapters/postgresql/referential_integrity_test.rb +16 -15
  87. data/test/cases/adapters/postgresql/rename_table_test.rb +9 -8
  88. data/test/cases/adapters/postgresql/schema_authorization_test.rb +14 -23
  89. data/test/cases/adapters/postgresql/schema_test.rb +207 -91
  90. data/test/cases/adapters/postgresql/serial_test.rb +9 -7
  91. data/test/cases/adapters/postgresql/statement_pool_test.rb +26 -6
  92. data/test/cases/adapters/postgresql/timestamp_test.rb +17 -15
  93. data/test/cases/adapters/postgresql/transaction_nested_test.rb +114 -0
  94. data/test/cases/adapters/postgresql/transaction_test.rb +189 -0
  95. data/test/cases/adapters/postgresql/type_lookup_test.rb +12 -10
  96. data/test/cases/adapters/postgresql/utils_test.rb +11 -9
  97. data/test/cases/adapters/postgresql/uuid_test.rb +226 -109
  98. data/test/cases/adapters/postgresql/xml_test.rb +10 -14
  99. data/test/cases/adapters/sqlite3/collation_test.rb +26 -15
  100. data/test/cases/adapters/sqlite3/copy_table_test.rb +31 -28
  101. data/test/cases/adapters/sqlite3/explain_test.rb +13 -11
  102. data/test/cases/adapters/sqlite3/json_test.rb +29 -0
  103. data/test/cases/adapters/sqlite3/quoting_test.rb +35 -57
  104. data/test/cases/adapters/sqlite3/sqlite3_adapter_prevent_writes_test.rb +186 -0
  105. data/test/cases/adapters/sqlite3/sqlite3_adapter_test.rb +318 -131
  106. data/test/cases/adapters/sqlite3/sqlite3_create_folder_test.rb +11 -11
  107. data/test/cases/adapters/sqlite3/statement_pool_test.rb +7 -6
  108. data/test/cases/adapters/sqlite3/transaction_test.rb +123 -0
  109. data/test/cases/aggregations_test.rb +14 -12
  110. data/test/cases/annotate_test.rb +46 -0
  111. data/test/cases/ar_schema_test.rb +153 -86
  112. data/test/cases/arel/attributes/attribute_test.rb +1145 -0
  113. data/test/cases/arel/attributes/math_test.rb +83 -0
  114. data/test/cases/arel/attributes_test.rb +27 -0
  115. data/test/cases/arel/collectors/bind_test.rb +40 -0
  116. data/test/cases/arel/collectors/composite_test.rb +47 -0
  117. data/test/cases/arel/collectors/sql_string_test.rb +41 -0
  118. data/test/cases/arel/collectors/substitute_bind_collector_test.rb +48 -0
  119. data/test/cases/arel/crud_test.rb +65 -0
  120. data/test/cases/arel/delete_manager_test.rb +53 -0
  121. data/test/cases/arel/factory_methods_test.rb +46 -0
  122. data/test/cases/arel/helper.rb +45 -0
  123. data/test/cases/arel/insert_manager_test.rb +241 -0
  124. data/test/cases/arel/nodes/and_test.rb +30 -0
  125. data/test/cases/arel/nodes/as_test.rb +36 -0
  126. data/test/cases/arel/nodes/ascending_test.rb +46 -0
  127. data/test/cases/arel/nodes/bin_test.rb +35 -0
  128. data/test/cases/arel/nodes/binary_test.rb +29 -0
  129. data/test/cases/arel/nodes/bind_param_test.rb +22 -0
  130. data/test/cases/arel/nodes/case_test.rb +96 -0
  131. data/test/cases/arel/nodes/casted_test.rb +18 -0
  132. data/test/cases/arel/nodes/comment_test.rb +22 -0
  133. data/test/cases/arel/nodes/count_test.rb +35 -0
  134. data/test/cases/arel/nodes/delete_statement_test.rb +36 -0
  135. data/test/cases/arel/nodes/descending_test.rb +46 -0
  136. data/test/cases/arel/nodes/distinct_test.rb +21 -0
  137. data/test/cases/arel/nodes/equality_test.rb +62 -0
  138. data/test/cases/arel/nodes/extract_test.rb +43 -0
  139. data/test/cases/arel/nodes/false_test.rb +21 -0
  140. data/test/cases/arel/nodes/grouping_test.rb +26 -0
  141. data/test/cases/arel/nodes/infix_operation_test.rb +42 -0
  142. data/test/cases/arel/nodes/insert_statement_test.rb +44 -0
  143. data/test/cases/arel/nodes/named_function_test.rb +48 -0
  144. data/test/cases/arel/nodes/node_test.rb +22 -0
  145. data/test/cases/arel/nodes/not_test.rb +31 -0
  146. data/test/cases/arel/nodes/or_test.rb +36 -0
  147. data/test/cases/arel/nodes/over_test.rb +69 -0
  148. data/test/cases/arel/nodes/select_core_test.rb +79 -0
  149. data/test/cases/arel/nodes/select_statement_test.rb +51 -0
  150. data/test/cases/arel/nodes/sql_literal_test.rb +75 -0
  151. data/test/cases/arel/nodes/sum_test.rb +35 -0
  152. data/test/cases/arel/nodes/table_alias_test.rb +29 -0
  153. data/test/cases/arel/nodes/true_test.rb +21 -0
  154. data/test/cases/arel/nodes/unary_operation_test.rb +41 -0
  155. data/test/cases/arel/nodes/update_statement_test.rb +60 -0
  156. data/test/cases/arel/nodes/window_test.rb +81 -0
  157. data/test/cases/arel/nodes_test.rb +34 -0
  158. data/test/cases/arel/select_manager_test.rb +1238 -0
  159. data/test/cases/arel/support/fake_record.rb +135 -0
  160. data/test/cases/arel/table_test.rb +216 -0
  161. data/test/cases/arel/update_manager_test.rb +126 -0
  162. data/test/cases/arel/visitors/dispatch_contamination_test.rb +78 -0
  163. data/test/cases/arel/visitors/dot_test.rb +90 -0
  164. data/test/cases/arel/visitors/mysql_test.rb +157 -0
  165. data/test/cases/arel/visitors/postgres_test.rb +366 -0
  166. data/test/cases/arel/visitors/sqlite_test.rb +75 -0
  167. data/test/cases/arel/visitors/to_sql_test.rb +750 -0
  168. data/test/cases/associations/belongs_to_associations_test.rb +510 -158
  169. data/test/cases/associations/bidirectional_destroy_dependencies_test.rb +4 -2
  170. data/test/cases/associations/callbacks_test.rb +56 -38
  171. data/test/cases/associations/cascaded_eager_loading_test.rb +118 -61
  172. data/test/cases/associations/eager_load_includes_full_sti_class_test.rb +138 -18
  173. data/test/cases/associations/eager_load_nested_include_test.rb +38 -37
  174. data/test/cases/associations/eager_singularization_test.rb +21 -21
  175. data/test/cases/associations/eager_test.rb +559 -415
  176. data/test/cases/associations/extension_test.rb +18 -12
  177. data/test/cases/associations/has_and_belongs_to_many_associations_test.rb +234 -213
  178. data/test/cases/associations/has_many_associations_test.rb +1038 -465
  179. data/test/cases/associations/has_many_through_associations_test.rb +558 -249
  180. data/test/cases/associations/has_one_associations_test.rb +294 -129
  181. data/test/cases/associations/has_one_through_associations_test.rb +121 -75
  182. data/test/cases/associations/inner_join_association_test.rb +114 -38
  183. data/test/cases/associations/inverse_associations_test.rb +606 -398
  184. data/test/cases/associations/join_model_test.rb +158 -148
  185. data/test/cases/associations/left_outer_join_association_test.rb +59 -24
  186. data/test/cases/associations/nested_through_associations_test.rb +166 -109
  187. data/test/cases/associations/required_test.rb +35 -10
  188. data/test/cases/associations_test.rb +241 -110
  189. data/test/cases/attribute_methods/read_test.rb +11 -11
  190. data/test/cases/attribute_methods_test.rb +413 -298
  191. data/test/cases/attributes_test.rb +145 -27
  192. data/test/cases/autosave_association_test.rb +681 -436
  193. data/test/cases/base_prevent_writes_test.rb +229 -0
  194. data/test/cases/base_test.rb +599 -542
  195. data/test/cases/batches_test.rb +288 -82
  196. data/test/cases/binary_test.rb +26 -31
  197. data/test/cases/bind_parameter_test.rb +194 -21
  198. data/test/cases/boolean_test.rb +52 -0
  199. data/test/cases/cache_key_test.rb +110 -5
  200. data/test/cases/calculations_test.rb +740 -177
  201. data/test/cases/callbacks_test.rb +74 -207
  202. data/test/cases/clone_test.rb +15 -10
  203. data/test/cases/coders/json_test.rb +2 -0
  204. data/test/cases/coders/yaml_column_test.rb +16 -13
  205. data/test/cases/collection_cache_key_test.rb +177 -20
  206. data/test/cases/column_alias_test.rb +9 -7
  207. data/test/cases/column_definition_test.rb +10 -68
  208. data/test/cases/comment_test.rb +166 -107
  209. data/test/cases/connection_adapters/adapter_leasing_test.rb +14 -10
  210. data/test/cases/connection_adapters/connection_handler_test.rb +358 -51
  211. data/test/cases/connection_adapters/connection_handlers_multi_db_test.rb +400 -0
  212. data/test/cases/connection_adapters/connection_handlers_multi_pool_config_test.rb +103 -0
  213. data/test/cases/connection_adapters/connection_handlers_sharding_db_test.rb +499 -0
  214. data/test/cases/connection_adapters/connection_swapping_nested_test.rb +457 -0
  215. data/test/cases/connection_adapters/legacy_connection_handlers_multi_db_test.rb +486 -0
  216. data/test/cases/connection_adapters/legacy_connection_handlers_sharding_db_test.rb +586 -0
  217. data/test/cases/connection_adapters/merge_and_resolve_default_url_config_test.rb +319 -138
  218. data/test/cases/connection_adapters/mysql_type_lookup_test.rb +62 -50
  219. data/test/cases/connection_adapters/schema_cache_test.rb +259 -26
  220. data/test/cases/connection_adapters/type_lookup_test.rb +96 -95
  221. data/test/cases/connection_management_test.rb +13 -11
  222. data/test/cases/connection_pool_test.rb +316 -83
  223. data/test/cases/core_test.rb +82 -58
  224. data/test/cases/counter_cache_test.rb +204 -50
  225. data/test/cases/custom_locking_test.rb +5 -3
  226. data/test/cases/database_configurations/hash_config_test.rb +74 -0
  227. data/test/cases/database_configurations/resolver_test.rb +150 -0
  228. data/test/cases/database_configurations_test.rb +145 -0
  229. data/test/cases/database_selector_test.rb +296 -0
  230. data/test/cases/database_statements_test.rb +18 -16
  231. data/test/cases/date_test.rb +8 -16
  232. data/test/cases/date_time_precision_test.rb +100 -78
  233. data/test/cases/date_time_test.rb +23 -8
  234. data/test/cases/defaults_test.rb +106 -71
  235. data/test/cases/delegated_type_test.rb +57 -0
  236. data/test/cases/dirty_test.rb +419 -223
  237. data/test/cases/disconnected_test.rb +6 -6
  238. data/test/cases/dup_test.rb +54 -27
  239. data/test/cases/enum_test.rb +461 -82
  240. data/test/cases/errors_test.rb +7 -7
  241. data/test/cases/explain_subscriber_test.rb +17 -15
  242. data/test/cases/explain_test.rb +11 -19
  243. data/test/cases/filter_attributes_test.rb +153 -0
  244. data/test/cases/finder_respond_to_test.rb +14 -14
  245. data/test/cases/finder_test.rb +669 -287
  246. data/test/cases/fixture_set/file_test.rb +34 -38
  247. data/test/cases/fixtures_test.rb +833 -176
  248. data/test/cases/forbidden_attributes_protection_test.rb +32 -67
  249. data/test/cases/habtm_destroy_order_test.rb +25 -25
  250. data/test/cases/helper.rb +78 -49
  251. data/test/cases/hot_compatibility_test.rb +33 -32
  252. data/test/cases/i18n_test.rb +18 -17
  253. data/test/cases/inheritance_test.rb +180 -115
  254. data/test/cases/insert_all_test.rb +489 -0
  255. data/test/cases/instrumentation_test.rb +101 -0
  256. data/test/cases/integration_test.rb +119 -31
  257. data/test/cases/invalid_connection_test.rb +18 -16
  258. data/test/cases/invertible_migration_test.rb +183 -43
  259. data/test/cases/json_attribute_test.rb +35 -0
  260. data/test/cases/json_serialization_test.rb +57 -58
  261. data/test/cases/json_shared_test_cases.rb +290 -0
  262. data/test/cases/locking_test.rb +413 -119
  263. data/test/cases/log_subscriber_test.rb +68 -26
  264. data/test/cases/marshal_serialization_test.rb +39 -0
  265. data/test/cases/migration/change_schema_test.rb +118 -72
  266. data/test/cases/migration/change_table_test.rb +138 -30
  267. data/test/cases/migration/check_constraint_test.rb +162 -0
  268. data/test/cases/migration/column_attributes_test.rb +45 -35
  269. data/test/cases/migration/column_positioning_test.rb +18 -6
  270. data/test/cases/migration/columns_test.rb +93 -77
  271. data/test/cases/migration/command_recorder_test.rb +121 -34
  272. data/test/cases/migration/compatibility_test.rb +578 -23
  273. data/test/cases/migration/create_join_table_test.rb +35 -25
  274. data/test/cases/migration/foreign_key_test.rb +503 -284
  275. data/test/cases/migration/helper.rb +4 -3
  276. data/test/cases/migration/index_test.rb +119 -70
  277. data/test/cases/migration/logger_test.rb +9 -6
  278. data/test/cases/migration/pending_migrations_test.rb +88 -34
  279. data/test/cases/migration/references_foreign_key_test.rb +164 -150
  280. data/test/cases/migration/references_index_test.rb +38 -19
  281. data/test/cases/migration/references_statements_test.rb +15 -14
  282. data/test/cases/migration/rename_table_test.rb +53 -30
  283. data/test/cases/migration_test.rb +637 -269
  284. data/test/cases/migrator_test.rb +191 -135
  285. data/test/cases/mixin_test.rb +7 -11
  286. data/test/cases/modules_test.rb +36 -34
  287. data/test/cases/multi_db_migrator_test.rb +223 -0
  288. data/test/cases/multiparameter_attributes_test.rb +60 -33
  289. data/test/cases/multiple_db_test.rb +16 -22
  290. data/test/cases/nested_attributes_test.rb +341 -320
  291. data/test/cases/nested_attributes_with_callbacks_test.rb +26 -24
  292. data/test/cases/null_relation_test.rb +84 -0
  293. data/test/cases/numeric_data_test.rb +93 -0
  294. data/test/cases/persistence_test.rb +361 -269
  295. data/test/cases/pooled_connections_test.rb +18 -26
  296. data/test/cases/prepared_statement_status_test.rb +48 -0
  297. data/test/cases/primary_keys_test.rb +210 -104
  298. data/test/cases/query_cache_test.rb +610 -141
  299. data/test/cases/quoting_test.rb +132 -31
  300. data/test/cases/readonly_test.rb +49 -48
  301. data/test/cases/reaper_test.rb +146 -32
  302. data/test/cases/reflection_test.rb +167 -156
  303. data/test/cases/relation/delegation_test.rb +49 -36
  304. data/test/cases/relation/delete_all_test.rb +117 -0
  305. data/test/cases/relation/merging_test.rb +319 -42
  306. data/test/cases/relation/mutation_test.rb +55 -93
  307. data/test/cases/relation/or_test.rb +129 -29
  308. data/test/cases/relation/predicate_builder_test.rb +21 -6
  309. data/test/cases/relation/record_fetch_warning_test.rb +5 -3
  310. data/test/cases/relation/select_test.rb +67 -0
  311. data/test/cases/relation/update_all_test.rb +317 -0
  312. data/test/cases/relation/where_chain_test.rb +68 -32
  313. data/test/cases/relation/where_clause_test.rb +136 -61
  314. data/test/cases/relation/where_test.rb +155 -48
  315. data/test/cases/relation_test.rb +266 -112
  316. data/test/cases/relations_test.rb +969 -744
  317. data/test/cases/reload_models_test.rb +13 -9
  318. data/test/cases/reserved_word_test.rb +141 -0
  319. data/test/cases/result_test.rb +68 -17
  320. data/test/cases/sanitize_test.rb +87 -71
  321. data/test/cases/schema_dumper_test.rb +221 -128
  322. data/test/cases/schema_loading_test.rb +3 -2
  323. data/test/cases/scoping/default_scoping_test.rb +185 -144
  324. data/test/cases/scoping/named_scoping_test.rb +177 -89
  325. data/test/cases/scoping/relation_scoping_test.rb +197 -75
  326. data/test/cases/secure_token_test.rb +18 -3
  327. data/test/cases/serialization_test.rb +30 -28
  328. data/test/cases/serialized_attribute_test.rb +133 -42
  329. data/test/cases/signed_id_test.rb +168 -0
  330. data/test/cases/statement_cache_test.rb +41 -24
  331. data/test/cases/statement_invalid_test.rb +42 -0
  332. data/test/cases/store_test.rb +180 -55
  333. data/test/cases/strict_loading_test.rb +473 -0
  334. data/test/cases/suppressor_test.rb +26 -12
  335. data/test/cases/tasks/database_tasks_test.rb +1258 -194
  336. data/test/cases/tasks/mysql_rake_test.rb +370 -298
  337. data/test/cases/tasks/postgresql_rake_test.rb +481 -251
  338. data/test/cases/tasks/sqlite_rake_test.rb +225 -178
  339. data/test/cases/test_case.rb +51 -40
  340. data/test/cases/test_databases_test.rb +79 -0
  341. data/test/cases/test_fixtures_test.rb +79 -19
  342. data/test/cases/time_precision_test.rb +98 -76
  343. data/test/cases/timestamp_test.rb +102 -99
  344. data/test/cases/touch_later_test.rb +12 -10
  345. data/test/cases/transaction_callbacks_test.rb +344 -90
  346. data/test/cases/transaction_isolation_test.rb +12 -12
  347. data/test/cases/transactions_test.rb +612 -162
  348. data/test/cases/type/adapter_specific_registry_test.rb +14 -2
  349. data/test/cases/type/date_time_test.rb +4 -2
  350. data/test/cases/type/integer_test.rb +4 -2
  351. data/test/cases/type/string_test.rb +10 -8
  352. data/test/cases/type/time_test.rb +28 -0
  353. data/test/cases/type/type_map_test.rb +29 -28
  354. data/test/cases/type/unsigned_integer_test.rb +19 -0
  355. data/test/cases/type_test.rb +2 -0
  356. data/test/cases/types_test.rb +3 -1
  357. data/test/cases/unconnected_test.rb +14 -1
  358. data/test/cases/unsafe_raw_sql_test.rb +274 -0
  359. data/test/cases/validations/absence_validation_test.rb +19 -17
  360. data/test/cases/validations/association_validation_test.rb +30 -28
  361. data/test/cases/validations/i18n_generate_message_validation_test.rb +34 -16
  362. data/test/cases/validations/i18n_validation_test.rb +22 -21
  363. data/test/cases/validations/length_validation_test.rb +34 -33
  364. data/test/cases/validations/numericality_validation_test.rb +181 -0
  365. data/test/cases/validations/presence_validation_test.rb +21 -19
  366. data/test/cases/validations/uniqueness_validation_test.rb +156 -86
  367. data/test/cases/validations_repair_helper.rb +2 -0
  368. data/test/cases/validations_test.rb +61 -26
  369. data/test/cases/view_test.rb +122 -116
  370. data/test/cases/yaml_serialization_test.rb +79 -34
  371. data/test/config.example.yml +19 -19
  372. data/test/config.rb +3 -1
  373. data/test/config.yml +16 -6
  374. data/test/fixtures/all/namespaced/accounts.yml +2 -0
  375. data/test/fixtures/author_addresses.yml +1 -8
  376. data/test/fixtures/authors.yml +1 -7
  377. data/test/fixtures/binaries.yml +4 -0
  378. data/test/fixtures/books.yml +9 -2
  379. data/test/fixtures/categories_posts.yml +3 -0
  380. data/test/fixtures/citations.yml +5 -0
  381. data/test/fixtures/comments.yml +7 -0
  382. data/test/fixtures/companies.yml +5 -0
  383. data/test/fixtures/computers.yml +2 -0
  384. data/test/fixtures/customers.yml +10 -1
  385. data/test/fixtures/developers.yml +1 -1
  386. data/test/fixtures/essays.yml +10 -0
  387. data/test/fixtures/faces.yml +3 -3
  388. data/test/fixtures/humans.yml +5 -0
  389. data/test/fixtures/interests.yml +7 -7
  390. data/test/fixtures/memberships.yml +7 -0
  391. data/test/fixtures/minimalistics.yml +3 -0
  392. data/test/fixtures/mixed_case_monkeys.yml +2 -2
  393. data/test/fixtures/naked/yml/courses_with_invalid_key.yml +3 -0
  394. data/test/fixtures/naked/yml/parrots.yml +1 -0
  395. data/test/fixtures/other_books.yml +26 -0
  396. data/test/fixtures/other_posts.yml +1 -0
  397. data/test/fixtures/parrots.yml +7 -1
  398. data/test/fixtures/pirates.yml +3 -0
  399. data/test/fixtures/posts.yml +11 -3
  400. data/test/fixtures/readers.yml +6 -0
  401. data/test/fixtures/reserved_words/values.yml +2 -2
  402. data/test/fixtures/sponsors.yml +3 -0
  403. data/test/fixtures/strict_zines.yml +2 -0
  404. data/test/fixtures/subscribers.yml +1 -1
  405. data/test/fixtures/tasks.yml +1 -1
  406. data/test/fixtures/warehouse-things.yml +3 -0
  407. data/test/migrations/10_urban/9_add_expressions.rb +2 -0
  408. data/test/migrations/decimal/1_give_me_big_numbers.rb +6 -4
  409. data/test/migrations/magic/1_currencies_have_symbols.rb +3 -2
  410. data/test/migrations/missing/1000_people_have_middle_names.rb +2 -0
  411. data/test/migrations/missing/1_people_have_last_names.rb +2 -0
  412. data/test/migrations/missing/3_we_need_reminders.rb +2 -0
  413. data/test/migrations/missing/4_innocent_jointable.rb +3 -1
  414. data/test/migrations/rename/1_we_need_things.rb +2 -0
  415. data/test/migrations/rename/2_rename_things.rb +2 -0
  416. data/test/migrations/to_copy/1_people_have_hobbies.rb +3 -1
  417. data/test/migrations/to_copy/2_people_have_descriptions.rb +3 -1
  418. data/test/migrations/to_copy2/1_create_articles.rb +2 -0
  419. data/test/migrations/to_copy2/2_create_comments.rb +3 -1
  420. data/test/migrations/to_copy_with_name_collision/1_people_have_hobbies.rb +3 -1
  421. data/test/migrations/to_copy_with_timestamps/20090101010101_people_have_hobbies.rb +3 -1
  422. data/test/migrations/to_copy_with_timestamps/20090101010202_people_have_descriptions.rb +3 -1
  423. data/test/migrations/to_copy_with_timestamps2/20090101010101_create_articles.rb +2 -0
  424. data/test/migrations/to_copy_with_timestamps2/20090101010202_create_comments.rb +2 -0
  425. data/test/migrations/valid/1_valid_people_have_last_names.rb +2 -0
  426. data/test/migrations/valid/2_we_need_reminders.rb +2 -0
  427. data/test/migrations/valid/3_innocent_jointable.rb +3 -1
  428. data/test/migrations/valid_with_subdirectories/1_valid_people_have_last_names.rb +2 -0
  429. data/test/migrations/valid_with_subdirectories/sub/2_we_need_reminders.rb +2 -0
  430. data/test/migrations/valid_with_subdirectories/sub1/3_innocent_jointable.rb +3 -1
  431. data/test/migrations/valid_with_timestamps/20100101010101_valid_with_timestamps_people_have_last_names.rb +2 -0
  432. data/test/migrations/valid_with_timestamps/20100201010101_valid_with_timestamps_we_need_reminders.rb +2 -0
  433. data/test/migrations/valid_with_timestamps/20100301010101_valid_with_timestamps_innocent_jointable.rb +3 -1
  434. data/test/migrations/version_check/20131219224947_migration_version_check.rb +2 -0
  435. data/test/models/account.rb +46 -0
  436. data/test/models/admin/account.rb +3 -1
  437. data/test/models/admin/randomly_named_c1.rb +2 -0
  438. data/test/models/admin/user.rb +16 -8
  439. data/test/models/admin.rb +4 -2
  440. data/test/models/aircraft.rb +3 -1
  441. data/test/models/arunit2_model.rb +2 -0
  442. data/test/models/author.rb +153 -102
  443. data/test/models/auto_id.rb +2 -0
  444. data/test/models/autoloadable/extra_firm.rb +2 -0
  445. data/test/models/binary.rb +3 -1
  446. data/test/models/binary_field.rb +6 -0
  447. data/test/models/bird.rb +13 -1
  448. data/test/models/book.rb +14 -4
  449. data/test/models/book_destroy_async.rb +24 -0
  450. data/test/models/boolean.rb +5 -0
  451. data/test/models/bulb.rb +13 -4
  452. data/test/models/cake_designer.rb +2 -0
  453. data/test/models/car.rb +17 -10
  454. data/test/models/carrier.rb +2 -0
  455. data/test/models/cart.rb +5 -0
  456. data/test/models/cat.rb +2 -0
  457. data/test/models/categorization.rb +8 -6
  458. data/test/models/category.rb +28 -16
  459. data/test/models/chef.rb +2 -0
  460. data/test/models/citation.rb +5 -1
  461. data/test/models/club.rb +13 -10
  462. data/test/models/college.rb +4 -2
  463. data/test/models/column.rb +2 -0
  464. data/test/models/column_name.rb +2 -0
  465. data/test/models/comment.rb +32 -10
  466. data/test/models/company.rb +102 -106
  467. data/test/models/company_in_module.rb +27 -26
  468. data/test/models/computer.rb +3 -1
  469. data/test/models/contact.rb +15 -13
  470. data/test/models/content.rb +5 -3
  471. data/test/models/contract.rb +21 -3
  472. data/test/models/country.rb +2 -4
  473. data/test/models/course.rb +3 -1
  474. data/test/models/customer.rb +10 -8
  475. data/test/models/customer_carrier.rb +2 -0
  476. data/test/models/dashboard.rb +2 -0
  477. data/test/models/default.rb +2 -0
  478. data/test/models/department.rb +2 -0
  479. data/test/models/destroy_async_parent.rb +15 -0
  480. data/test/models/destroy_async_parent_soft_delete.rb +20 -0
  481. data/test/models/developer.rb +152 -85
  482. data/test/models/dl_keyed_belongs_to.rb +13 -0
  483. data/test/models/dl_keyed_belongs_to_soft_delete.rb +19 -0
  484. data/test/models/dl_keyed_has_many.rb +5 -0
  485. data/test/models/dl_keyed_has_many_through.rb +5 -0
  486. data/test/models/dl_keyed_has_one.rb +5 -0
  487. data/test/models/dl_keyed_join.rb +10 -0
  488. data/test/models/dog.rb +2 -0
  489. data/test/models/dog_lover.rb +2 -0
  490. data/test/models/doubloon.rb +3 -1
  491. data/test/models/drink_designer.rb +17 -0
  492. data/test/models/edge.rb +4 -2
  493. data/test/models/electron.rb +2 -0
  494. data/test/models/engine.rb +3 -2
  495. data/test/models/entrant.rb +2 -0
  496. data/test/models/entry.rb +5 -0
  497. data/test/models/essay.rb +6 -3
  498. data/test/models/essay_destroy_async.rb +12 -0
  499. data/test/models/event.rb +3 -1
  500. data/test/models/eye.rb +5 -3
  501. data/test/models/face.rb +14 -6
  502. data/test/models/family.rb +6 -0
  503. data/test/models/family_tree.rb +6 -0
  504. data/test/models/friendship.rb +5 -3
  505. data/test/models/frog.rb +8 -0
  506. data/test/models/guid.rb +3 -1
  507. data/test/models/guitar.rb +2 -0
  508. data/test/models/hotel.rb +5 -3
  509. data/test/models/human.rb +39 -0
  510. data/test/models/image.rb +3 -1
  511. data/test/models/interest.rb +14 -3
  512. data/test/models/invoice.rb +4 -2
  513. data/test/models/item.rb +3 -1
  514. data/test/models/job.rb +5 -3
  515. data/test/models/joke.rb +4 -2
  516. data/test/models/keyboard.rb +3 -1
  517. data/test/models/legacy_thing.rb +2 -0
  518. data/test/models/lesson.rb +2 -0
  519. data/test/models/line_item.rb +3 -1
  520. data/test/models/liquid.rb +2 -0
  521. data/test/models/matey.rb +3 -1
  522. data/test/models/measurement.rb +4 -0
  523. data/test/models/member.rb +23 -20
  524. data/test/models/member_detail.rb +3 -0
  525. data/test/models/member_type.rb +2 -0
  526. data/test/models/membership.rb +4 -1
  527. data/test/models/mentor.rb +3 -1
  528. data/test/models/message.rb +5 -0
  529. data/test/models/minimalistic.rb +2 -0
  530. data/test/models/minivan.rb +3 -2
  531. data/test/models/mixed_case_monkey.rb +3 -1
  532. data/test/models/molecule.rb +2 -0
  533. data/test/models/mouse.rb +6 -0
  534. data/test/models/movie.rb +2 -0
  535. data/test/models/node.rb +4 -2
  536. data/test/models/non_primary_key.rb +2 -0
  537. data/test/models/notification.rb +2 -0
  538. data/test/models/numeric_data.rb +12 -0
  539. data/test/models/order.rb +4 -2
  540. data/test/models/organization.rb +9 -7
  541. data/test/models/other_dog.rb +3 -1
  542. data/test/models/owner.rb +6 -4
  543. data/test/models/parrot.rb +12 -4
  544. data/test/models/person.rb +59 -54
  545. data/test/models/personal_legacy_thing.rb +3 -1
  546. data/test/models/pet.rb +4 -2
  547. data/test/models/pet_treasure.rb +2 -0
  548. data/test/models/pirate.rb +67 -43
  549. data/test/models/possession.rb +3 -1
  550. data/test/models/post.rb +184 -86
  551. data/test/models/price_estimate.rb +11 -1
  552. data/test/models/professor.rb +3 -1
  553. data/test/models/project.rb +14 -12
  554. data/test/models/publisher/article.rb +2 -0
  555. data/test/models/publisher/magazine.rb +2 -0
  556. data/test/models/publisher.rb +2 -0
  557. data/test/models/randomly_named_c1.rb +2 -0
  558. data/test/models/rating.rb +5 -1
  559. data/test/models/reader.rb +7 -5
  560. data/test/models/recipe.rb +2 -0
  561. data/test/models/record.rb +2 -0
  562. data/test/models/reference.rb +6 -3
  563. data/test/models/reply.rb +39 -21
  564. data/test/models/room.rb +6 -0
  565. data/test/models/section.rb +6 -0
  566. data/test/models/seminar.rb +6 -0
  567. data/test/models/session.rb +6 -0
  568. data/test/models/ship.rb +12 -9
  569. data/test/models/ship_part.rb +5 -3
  570. data/test/models/shop.rb +4 -2
  571. data/test/models/shop_account.rb +2 -0
  572. data/test/models/speedometer.rb +2 -0
  573. data/test/models/sponsor.rb +8 -5
  574. data/test/models/squeak.rb +6 -0
  575. data/test/models/strict_zine.rb +7 -0
  576. data/test/models/string_key_object.rb +2 -0
  577. data/test/models/student.rb +2 -0
  578. data/test/models/subscriber.rb +4 -2
  579. data/test/models/subscription.rb +5 -1
  580. data/test/models/tag.rb +6 -3
  581. data/test/models/tagging.rb +13 -6
  582. data/test/models/task.rb +2 -0
  583. data/test/models/topic.rb +54 -19
  584. data/test/models/toy.rb +4 -0
  585. data/test/models/traffic_light.rb +2 -0
  586. data/test/models/treasure.rb +5 -3
  587. data/test/models/treaty.rb +2 -4
  588. data/test/models/tree.rb +2 -0
  589. data/test/models/tuning_peg.rb +2 -0
  590. data/test/models/tyre.rb +2 -0
  591. data/test/models/user.rb +12 -4
  592. data/test/models/uuid_child.rb +2 -0
  593. data/test/models/uuid_item.rb +2 -0
  594. data/test/models/uuid_parent.rb +2 -0
  595. data/test/models/vegetables.rb +12 -3
  596. data/test/models/vertex.rb +6 -4
  597. data/test/models/warehouse_thing.rb +2 -0
  598. data/test/models/wheel.rb +3 -1
  599. data/test/models/without_table.rb +3 -1
  600. data/test/models/zine.rb +3 -1
  601. data/test/schema/mysql2_specific_schema.rb +49 -35
  602. data/test/schema/oracle_specific_schema.rb +13 -15
  603. data/test/schema/postgresql_specific_schema.rb +51 -40
  604. data/test/schema/schema.rb +334 -154
  605. data/test/schema/sqlite_specific_schema.rb +9 -16
  606. data/test/support/config.rb +26 -26
  607. data/test/support/connection.rb +14 -8
  608. data/test/support/connection_helper.rb +3 -1
  609. data/test/support/ddl_helper.rb +2 -0
  610. data/test/support/marshal_compatibility_fixtures/IBM_DB/rails_6_0_topic.dump +0 -0
  611. data/test/support/marshal_compatibility_fixtures/IBM_DB/rails_6_0_topic_associations.dump +0 -0
  612. data/test/support/marshal_compatibility_fixtures/Mysql2/rails_6_0_topic.dump +0 -0
  613. data/test/support/marshal_compatibility_fixtures/Mysql2/rails_6_0_topic_associations.dump +0 -0
  614. data/test/support/marshal_compatibility_fixtures/PostgreSQL/rails_6_0_topic.dump +0 -0
  615. data/test/support/marshal_compatibility_fixtures/PostgreSQL/rails_6_0_topic_associations.dump +0 -0
  616. data/test/support/marshal_compatibility_fixtures/SQLite/rails_6_0_topic.dump +0 -0
  617. data/test/support/marshal_compatibility_fixtures/SQLite/rails_6_0_topic_associations.dump +0 -0
  618. data/test/support/marshal_compatibility_fixtures/legacy_6_0_record_mysql.dump +0 -0
  619. data/test/support/marshal_compatibility_fixtures/legacy_relation.dump +0 -0
  620. data/test/support/schema_dumping_helper.rb +2 -0
  621. data/test/support/stubs/strong_parameters.rb +40 -0
  622. data/test/support/yaml_compatibility_fixtures/rails_v1_mysql.yml +206 -0
  623. data/test/support/yaml_compatibility_fixtures/rails_v2.yml +55 -0
  624. metadata +196 -11
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  ActiveRecord::Schema.define do
2
4
  # ------------------------------------------------------------------- #
3
5
  # #
@@ -7,9 +9,10 @@ ActiveRecord::Schema.define do
7
9
  # ------------------------------------------------------------------- #
8
10
 
9
11
  create_table :accounts, force: true do |t|
10
- t.integer :firm_id
12
+ t.references :firm, index: false
11
13
  t.string :firm_name
12
14
  t.integer :credit_limit
15
+ t.integer "a" * max_identifier_length
13
16
  end
14
17
 
15
18
  create_table :admin_accounts, force: true do |t|
@@ -19,9 +22,12 @@ ActiveRecord::Schema.define do
19
22
  create_table :admin_users, force: true do |t|
20
23
  t.string :name
21
24
  t.string :settings, null: true, limit: 1024
25
+ t.string :parent, null: true, limit: 1024
26
+ t.string :spouse, null: true, limit: 1024
27
+ t.string :configs, null: true, limit: 1024
22
28
  # MySQL does not allow default values for blobs. Fake it out with a
23
29
  # big varchar below.
24
- t.string :preferences, null: true, default: '', limit: 1024
30
+ t.string :preferences, null: true, default: "", limit: 1024
25
31
  t.string :json_data, null: true, limit: 1024
26
32
  t.string :json_data_empty, null: true, default: "", limit: 1024
27
33
  t.text :params
@@ -31,6 +37,7 @@ ActiveRecord::Schema.define do
31
37
  create_table :aircraft, force: true do |t|
32
38
  t.string :name
33
39
  t.integer :wheels_count, default: 0, null: false
40
+ t.datetime :wheels_owned_at
34
41
  end
35
42
 
36
43
  create_table :articles, force: true do |t|
@@ -54,8 +61,8 @@ ActiveRecord::Schema.define do
54
61
 
55
62
  create_table :authors, force: true do |t|
56
63
  t.string :name, null: false
57
- t.integer :author_address_id
58
- t.integer :author_address_extra_id
64
+ t.references :author_address
65
+ t.references :author_address_extra
59
66
  t.string :organization_id
60
67
  t.string :owned_essay_id
61
68
  end
@@ -87,18 +94,32 @@ ActiveRecord::Schema.define do
87
94
  t.integer :pirate_id
88
95
  end
89
96
 
90
- create_table :books, force: true do |t|
91
- t.integer :author_id
97
+ create_table :books, id: :integer, force: true do |t|
98
+ default_zero = { default: 0 }
99
+ t.references :author
92
100
  t.string :format
93
101
  t.column :name, :string
94
- t.column :status, :integer, default: 0
95
- t.column :read_status, :integer, default: 0
102
+ t.column :status, :integer, **default_zero
103
+ t.column :last_read, :integer, **default_zero
96
104
  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'
105
+ t.column :language, :integer, **default_zero
106
+ t.column :author_visibility, :integer, **default_zero
107
+ t.column :illustrator_visibility, :integer, **default_zero
108
+ t.column :font_size, :integer, **default_zero
109
+ t.column :difficulty, :integer, **default_zero
110
+ t.column :cover, :string, default: "hard"
111
+ t.string :isbn
112
+ t.string :external_id
113
+ t.datetime :published_on
114
+ t.boolean :boolean_status
115
+ t.index [:author_id, :name], unique: true
116
+ t.integer :tags_count, default: 0
117
+ t.index :isbn, where: "published_on IS NOT NULL", unique: true
118
+ t.index "(lower(external_id))", unique: true if supports_expression_index?
119
+
120
+ t.datetime :created_at
121
+ t.datetime :updated_at
122
+ t.date :updated_on
102
123
  end
103
124
 
104
125
  create_table :booleans, force: true do |t|
@@ -106,7 +127,7 @@ ActiveRecord::Schema.define do
106
127
  t.boolean :has_fun, null: false, default: false
107
128
  end
108
129
 
109
- create_table :bulbs, force: true do |t|
130
+ create_table :bulbs, primary_key: "ID", force: true do |t|
110
131
  t.integer :car_id
111
132
  t.string :name
112
133
  t.boolean :frickinawesome, default: false
@@ -120,20 +141,34 @@ ActiveRecord::Schema.define do
120
141
  create_table :cars, force: true do |t|
121
142
  t.string :name
122
143
  t.integer :engines_count
123
- t.integer :wheels_count
144
+ t.integer :wheels_count, default: 0, null: false
145
+ t.datetime :wheels_owned_at
124
146
  t.column :lock_version, :integer, null: false, default: 0
125
147
  t.timestamps null: false
126
148
  end
127
149
 
150
+ create_table :old_cars, id: :integer, force: true do |t|
151
+ end
152
+
128
153
  create_table :carriers, force: true
129
154
 
155
+ create_table :carts, force: true, primary_key: [:shop_id, :id] do |t|
156
+ if current_adapter?(:Mysql2Adapter)
157
+ t.bigint :id, index: true, auto_increment: true, null: false
158
+ else
159
+ t.bigint :id, index: true, null: false
160
+ end
161
+ t.bigint :shop_id, null: false
162
+ t.string :title
163
+ end
164
+
130
165
  create_table :categories, force: true do |t|
131
166
  t.string :name, null: false
132
167
  t.string :type
133
168
  t.integer :categorizations_count
134
169
  end
135
170
 
136
- create_table :categories_posts, force: true, id: false do |t|
171
+ create_table :categories_posts, force: true do |t|
137
172
  t.integer :category_id, null: false
138
173
  t.integer :post_id, null: false
139
174
  end
@@ -147,8 +182,9 @@ ActiveRecord::Schema.define do
147
182
  end
148
183
 
149
184
  create_table :citations, force: true do |t|
150
- t.column :book1_id, :integer
151
- t.column :book2_id, :integer
185
+ t.references :book1
186
+ t.references :book2
187
+ t.references :citation
152
188
  end
153
189
 
154
190
  create_table :clubs, force: true do |t|
@@ -172,12 +208,13 @@ ActiveRecord::Schema.define do
172
208
  t.integer :post_id, null: false
173
209
  # use VARCHAR2(4000) instead of CLOB datatype as CLOB data type has many limitations in
174
210
  # Oracle SELECT WHERE clause which causes many unit test failures
175
- if current_adapter?(:OracleAdapter) || current_adapter?(:IBM_DBAdapter)
211
+ if current_adapter?(:OracleAdapter, :IBM_DBAdapter)
176
212
  t.string :body, null: false, limit: 4000
177
213
  else
178
214
  t.text :body, null: false
179
215
  end
180
216
  t.string :type
217
+ t.integer :label, default: 0
181
218
  t.integer :tags_count, default: 0
182
219
  t.integer :children_count, default: 0
183
220
  t.integer :parent_id
@@ -185,26 +222,33 @@ ActiveRecord::Schema.define do
185
222
  t.string :resource_id
186
223
  t.string :resource_type
187
224
  t.integer :developer_id
225
+ t.datetime :updated_at
188
226
  t.datetime :deleted_at
227
+ t.integer :comments
228
+ t.integer :company
189
229
  end
190
230
 
191
- create_table :companies, force: true do |t|
231
+ create_table :companies, force: true, id: :bigint do |t|
192
232
  t.string :type
193
- t.integer :firm_id
233
+ t.references :firm, index: false
194
234
  t.string :firm_name
195
235
  t.string :name
196
- t.integer :client_of
197
- t.integer :rating, default: 1
236
+ t.bigint :client_of
237
+ t.bigint :rating, default: 1
198
238
  t.integer :account_id
199
239
  t.string :description, default: ""
240
+ t.index [:name, :rating], order: :desc
241
+ t.index [:name, :description], length: 10
200
242
  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?
243
+ t.index [:firm_id, :type], name: "company_partial_index", where: "(rating > 10)"
244
+ t.index :name, name: "company_name_index"
245
+ t.index "(CASE WHEN rating > 0 THEN lower(name) END) DESC", name: "company_expression_index" if supports_expression_index?
204
246
  end
205
247
 
206
248
  create_table :content, force: true do |t|
207
249
  t.string :title
250
+ t.belongs_to :book
251
+ t.belongs_to :book_destroy_async
208
252
  end
209
253
 
210
254
  create_table :content_positions, force: true do |t|
@@ -221,6 +265,7 @@ ActiveRecord::Schema.define do
221
265
  t.string :system
222
266
  t.integer :developer, null: false
223
267
  t.integer :extendedWarranty, null: false
268
+ t.integer :timezone
224
269
  end
225
270
 
226
271
  create_table :computers_developers, id: false, force: true do |t|
@@ -229,8 +274,10 @@ ActiveRecord::Schema.define do
229
274
  end
230
275
 
231
276
  create_table :contracts, force: true do |t|
232
- t.integer :developer_id
233
- t.integer :company_id
277
+ t.references :developer, index: false
278
+ t.references :company, index: false
279
+ t.string :metadata
280
+ t.integer :count
234
281
  end
235
282
 
236
283
  create_table :customers, force: true do |t|
@@ -252,22 +299,66 @@ ActiveRecord::Schema.define do
252
299
  t.string :name
253
300
  end
254
301
 
302
+ create_table :destroy_async_parents, force: true, id: false do |t|
303
+ t.primary_key :parent_id
304
+ t.string :name
305
+ t.integer :tags_count, default: 0
306
+ end
307
+
308
+ create_table :destroy_async_parent_soft_deletes, force: true do |t|
309
+ t.integer :tags_count, default: 0
310
+ t.boolean :deleted
311
+ end
312
+
313
+ create_table :dl_keyed_belongs_tos, force: true, id: false do |t|
314
+ t.primary_key :belongs_key
315
+ t.references :destroy_async_parent
316
+ end
317
+
318
+ create_table :dl_keyed_belongs_to_soft_deletes, force: true do |t|
319
+ t.references :destroy_async_parent_soft_delete,
320
+ index: { name: :soft_del_parent }
321
+ t.boolean :deleted
322
+ end
323
+
324
+ create_table :dl_keyed_has_ones, force: true, id: false do |t|
325
+ t.primary_key :has_one_key
326
+
327
+ t.references :destroy_async_parent
328
+ t.references :destroy_async_parent_soft_delete
329
+ end
330
+
331
+ create_table :dl_keyed_has_manies, force: true, id: false do |t|
332
+ t.primary_key :many_key
333
+ t.references :destroy_async_parent
334
+ end
335
+
336
+ create_table :dl_keyed_has_many_throughs, force: true, id: false do |t|
337
+ t.primary_key :through_key
338
+ end
339
+
340
+ create_table :dl_keyed_joins, force: true, id: false do |t|
341
+ t.primary_key :joins_key
342
+ t.references :destroy_async_parent
343
+ t.references :dl_keyed_has_many_through
344
+ end
345
+
255
346
  create_table :developers, force: true do |t|
256
347
  t.string :name
257
348
  t.string :first_name
258
349
  t.integer :salary, default: 70000
259
- t.integer :firm_id
350
+ t.references :firm, index: false
260
351
  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
352
+ if supports_datetime_with_precision?
353
+ t.datetime :legacy_created_at, precision: 6
354
+ t.datetime :legacy_updated_at, precision: 6
355
+ t.datetime :legacy_created_on, precision: 6
356
+ t.datetime :legacy_updated_on, precision: 6
266
357
  else
267
- t.datetime :created_at
268
- t.datetime :updated_at
269
- t.datetime :created_on
270
- t.datetime :updated_on
358
+ t.datetime :legacy_created_at
359
+ t.datetime :legacy_updated_at
360
+ t.datetime :legacy_created_on
361
+ t.datetime :legacy_updated_on
271
362
  end
272
363
  end
273
364
 
@@ -299,11 +390,11 @@ ActiveRecord::Schema.define do
299
390
  create_table :edges, force: true, id: false do |t|
300
391
  t.column :source_id, :integer, null: false
301
392
  t.column :sink_id, :integer, null: false
302
- t.index [:source_id, :sink_id], unique: true, name: 'unique_edge_index'
393
+ t.index [:source_id, :sink_id], unique: true, name: "unique_edge_index"
303
394
  end
304
395
 
305
396
  create_table :engines, force: true do |t|
306
- t.integer :car_id
397
+ t.references :car, index: false
307
398
  end
308
399
 
309
400
  create_table :entrants, force: true do |t|
@@ -311,12 +402,19 @@ ActiveRecord::Schema.define do
311
402
  t.integer :course_id, null: false
312
403
  end
313
404
 
405
+ create_table :entries, force: true do |t|
406
+ t.string :entryable_type, null: false
407
+ t.integer :entryable_id, null: false
408
+ end
409
+
314
410
  create_table :essays, force: true do |t|
411
+ t.string :type
315
412
  t.string :name
316
413
  t.string :writer_id
317
414
  t.string :writer_type
318
415
  t.string :category_id
319
416
  t.string :author_id
417
+ t.references :book
320
418
  end
321
419
 
322
420
  create_table :events, force: true do |t|
@@ -326,6 +424,19 @@ ActiveRecord::Schema.define do
326
424
  create_table :eyes, force: true do |t|
327
425
  end
328
426
 
427
+ create_table :families, force: true do |t|
428
+ end
429
+
430
+ create_table :family_trees, force: true do |t|
431
+ t.references :family
432
+ t.references :member
433
+ t.string :token
434
+ end
435
+
436
+ create_table :frogs, force: true do |t|
437
+ t.string :name
438
+ end
439
+
329
440
  create_table :funny_jokes, force: true do |t|
330
441
  t.string :name
331
442
  end
@@ -371,7 +482,7 @@ ActiveRecord::Schema.define do
371
482
 
372
483
  create_table :invoices, force: true do |t|
373
484
  t.integer :balance
374
- if subsecond_precision_supported?
485
+ if supports_datetime_with_precision?
375
486
  t.datetime :updated_at, precision: 6
376
487
  else
377
488
  t.datetime :updated_at
@@ -401,6 +512,9 @@ ActiveRecord::Schema.define do
401
512
  t.string :name
402
513
  end
403
514
 
515
+ create_table :kitchens, force: true do |t|
516
+ end
517
+
404
518
  create_table :legacy_things, force: true do |t|
405
519
  t.integer :tps_report_number
406
520
  t.integer :version, null: false, default: 0
@@ -436,11 +550,15 @@ ActiveRecord::Schema.define do
436
550
  end
437
551
 
438
552
  create_table :lock_without_defaults, force: true do |t|
553
+ t.column :title, :string
439
554
  t.column :lock_version, :integer
555
+ t.timestamps null: true
440
556
  end
441
557
 
442
558
  create_table :lock_without_defaults_cust, force: true do |t|
559
+ t.column :title, :string
443
560
  t.column :custom_lock_version, :integer
561
+ t.timestamps null: true
444
562
  end
445
563
 
446
564
  create_table :magazines, force: true do |t|
@@ -454,7 +572,8 @@ ActiveRecord::Schema.define do
454
572
 
455
573
  create_table :members, force: true do |t|
456
574
  t.string :name
457
- t.integer :member_type_id
575
+ t.references :member_type, index: false
576
+ t.references :admittable, polymorphic: true, index: false
458
577
  end
459
578
 
460
579
  create_table :member_details, force: true do |t|
@@ -472,7 +591,9 @@ ActiveRecord::Schema.define do
472
591
  t.datetime :joined_on
473
592
  t.integer :club_id, :member_id
474
593
  t.boolean :favourite, default: false
475
- t.string :type
594
+ t.integer :type
595
+ t.datetime :created_at
596
+ t.datetime :updated_at
476
597
  end
477
598
 
478
599
  create_table :member_types, force: true do |t|
@@ -483,6 +604,10 @@ ActiveRecord::Schema.define do
483
604
  t.string :name
484
605
  end
485
606
 
607
+ create_table :messages, force: true do |t|
608
+ t.string :subject
609
+ end
610
+
486
611
  create_table :minivans, force: true, id: false do |t|
487
612
  t.string :minivan_id
488
613
  t.string :name
@@ -494,7 +619,7 @@ ActiveRecord::Schema.define do
494
619
  end
495
620
 
496
621
  create_table :mixed_case_monkeys, force: true, id: false do |t|
497
- t.primary_key :monkeyID
622
+ t.primary_key :monkeyid
498
623
  t.integer :fleaCount
499
624
  end
500
625
 
@@ -509,6 +634,10 @@ ActiveRecord::Schema.define do
509
634
  t.string :type
510
635
  end
511
636
 
637
+ create_table :mice, force: true do |t|
638
+ t.string :name
639
+ end
640
+
512
641
  create_table :movies, force: true, id: false do |t|
513
642
  t.primary_key :movieid
514
643
  t.string :name
@@ -521,19 +650,18 @@ ActiveRecord::Schema.define do
521
650
  create_table :numeric_data, force: true do |t|
522
651
  t.decimal :bank_balance, precision: 10, scale: 2
523
652
  t.decimal :big_bank_balance, precision: 15, scale: 2
524
- t.decimal :world_population, precision: 10, scale: 0
653
+ t.decimal :unscaled_bank_balance, precision: 10
654
+ t.decimal :world_population, precision: 20, scale: 0
525
655
  t.decimal :my_house_population, precision: 2, scale: 0
656
+ t.decimal :decimal_number
526
657
  t.decimal :decimal_number_with_default, precision: 3, scale: 2, default: 2.78
527
658
  t.float :temperature
659
+ t.decimal :decimal_number_big_precision, precision: 20
528
660
  # Oracle/SQLServer supports precision up to 38
529
661
  if current_adapter?(:OracleAdapter, :SQLServerAdapter)
530
662
  t.decimal :atoms_in_universe, precision: 38, scale: 0
531
- elsif current_adapter?(:IBM_DBAdapter)
532
- t.decimal :atoms_in_universe, precision: 31, scale: 0
533
- elsif current_adapter?(:FbAdapter)
534
- t.decimal :atoms_in_universe, precision: 18, scale: 0
535
663
  else
536
- t.decimal :atoms_in_universe, precision: 55, scale: 0
664
+ t.decimal :atoms_in_universe, precision: 31, scale: 0
537
665
  end
538
666
  end
539
667
 
@@ -549,7 +677,7 @@ ActiveRecord::Schema.define do
549
677
 
550
678
  create_table :owners, primary_key: :owner_id, force: true do |t|
551
679
  t.string :name
552
- if subsecond_precision_supported?
680
+ if supports_datetime_with_precision?
553
681
  t.column :updated_at, :datetime, precision: 6
554
682
  else
555
683
  t.column :updated_at, :datetime
@@ -566,33 +694,55 @@ ActiveRecord::Schema.define do
566
694
  t.integer :non_poly_two_id
567
695
  end
568
696
 
569
- create_table :parrots, force: true do |t|
570
- t.column :name, :string
571
- t.column :color, :string
572
- t.column :parrot_sti_class, :string
573
- t.column :killer_id, :integer
574
- t.column :updated_count, :integer, default: 0
575
- if subsecond_precision_supported?
576
- t.column :created_at, :datetime, precision: 0
577
- t.column :created_on, :datetime, precision: 0
578
- t.column :updated_at, :datetime, precision: 0
579
- t.column :updated_on, :datetime, precision: 0
580
- else
581
- t.column :created_at, :datetime
582
- t.column :created_on, :datetime
583
- t.column :updated_at, :datetime
584
- t.column :updated_on, :datetime
697
+ disable_referential_integrity do
698
+ create_table :parrots, force: :cascade do |t|
699
+ t.string :name
700
+ t.string :color
701
+ t.string :parrot_sti_class
702
+ t.integer :killer_id
703
+ t.integer :updated_count, :integer, default: 0
704
+ if supports_datetime_with_precision?
705
+ t.datetime :created_at, precision: 0
706
+ t.datetime :created_on, precision: 0
707
+ t.datetime :updated_at, precision: 0
708
+ t.datetime :updated_on, precision: 0
709
+ else
710
+ t.datetime :created_at
711
+ t.datetime :created_on
712
+ t.datetime :updated_at
713
+ t.datetime :updated_on
714
+ end
585
715
  end
586
- end
587
716
 
588
- create_table :parrots_pirates, id: false, force: true do |t|
589
- t.column :parrot_id, :integer
590
- t.column :pirate_id, :integer
591
- end
717
+ create_table :pirates, force: :cascade do |t|
718
+ t.string :catchphrase
719
+ t.integer :parrot_id
720
+ t.integer :non_validated_parrot_id
721
+ if supports_datetime_with_precision?
722
+ t.datetime :created_on, precision: 6
723
+ t.datetime :updated_on, precision: 6
724
+ else
725
+ t.datetime :created_on
726
+ t.datetime :updated_on
727
+ end
728
+ end
592
729
 
593
- create_table :parrots_treasures, id: false, force: true do |t|
594
- t.column :parrot_id, :integer
595
- t.column :treasure_id, :integer
730
+ create_table :treasures, force: :cascade do |t|
731
+ t.string :name
732
+ t.string :type
733
+ t.references :looter, polymorphic: true
734
+ t.references :ship
735
+ end
736
+
737
+ create_table :parrots_pirates, id: false, force: true do |t|
738
+ t.references :parrot, foreign_key: true
739
+ t.references :pirate, foreign_key: true
740
+ end
741
+
742
+ create_table :parrots_treasures, id: false, force: true do |t|
743
+ t.references :parrot, foreign_key: true
744
+ t.references :treasure, foreign_key: true
745
+ end
596
746
  end
597
747
 
598
748
  create_table :people, force: true do |t|
@@ -625,11 +775,7 @@ ActiveRecord::Schema.define do
625
775
  create_table :pets, primary_key: :pet_id, force: true do |t|
626
776
  t.string :name
627
777
  t.integer :owner_id, :integer
628
- if subsecond_precision_supported?
629
- t.timestamps null: false, precision: 6
630
- else
631
- t.timestamps null: false
632
- end
778
+ t.timestamps
633
779
  end
634
780
 
635
781
  create_table :pets_treasures, force: true do |t|
@@ -638,34 +784,22 @@ ActiveRecord::Schema.define do
638
784
  t.column :rainbow_color, :string
639
785
  end
640
786
 
641
- create_table :pirates, force: true do |t|
642
- t.column :catchphrase, :string
643
- t.column :parrot_id, :integer
644
- t.integer :non_validated_parrot_id
645
- if subsecond_precision_supported?
646
- t.column :created_on, :datetime, precision: 6
647
- t.column :updated_on, :datetime, precision: 6
648
- else
649
- t.column :created_on, :datetime
650
- t.column :updated_on, :datetime
651
- end
652
- end
653
-
654
787
  create_table :posts, force: true do |t|
655
- t.integer :author_id
656
- t.string :title, null: false
788
+ t.references :author, type: :integer
789
+ t.string :title, null: false
657
790
  # use VARCHAR2(4000) instead of CLOB datatype as CLOB data type has many limitations in
658
791
  # Oracle SELECT WHERE clause which causes many unit test failures
659
- if current_adapter?(:OracleAdapter) || current_adapter?(:IBM_DBAdapter)
792
+ if current_adapter?(:OracleAdapter, :IBM_DBAdapter)
660
793
  t.string :body, null: false, limit: 4000
661
794
  else
662
795
  t.text :body, null: false
663
796
  end
664
797
  t.string :type
665
- t.integer :comments_count, default: 0
798
+ t.integer :legacy_comments_count, default: 0
666
799
  t.integer :taggings_with_delete_all_count, default: 0
667
800
  t.integer :taggings_with_destroy_count, default: 0
668
801
  t.integer :tags_count, default: 0
802
+ t.integer :indestructible_tags_count, default: 0
669
803
  t.integer :tags_with_destroy_count, default: 0
670
804
  t.integer :tags_with_nullify_count, default: 0
671
805
  end
@@ -684,14 +818,19 @@ ActiveRecord::Schema.define do
684
818
  t.string :estimate_of_type
685
819
  t.integer :estimate_of_id
686
820
  t.integer :price
821
+ t.string :currency
687
822
  end
688
823
 
689
824
  create_table :products, force: true do |t|
690
825
  t.references :collection
691
826
  t.references :type
692
- t.string :name
827
+ t.string :name
828
+ t.decimal :price
829
+ t.decimal :discounted_price
693
830
  end
694
831
 
832
+ add_check_constraint :products, "price > discounted_price", name: "products_price_check"
833
+
695
834
  create_table :product_types, force: true do |t|
696
835
  t.string :name
697
836
  end
@@ -699,7 +838,7 @@ ActiveRecord::Schema.define do
699
838
  create_table :projects, force: true do |t|
700
839
  t.string :name
701
840
  t.string :type
702
- t.integer :firm_id
841
+ t.references :firm, index: false
703
842
  t.integer :mentor_id
704
843
  end
705
844
 
@@ -737,6 +876,29 @@ ActiveRecord::Schema.define do
737
876
  t.integer :lock_version, default: 0
738
877
  end
739
878
 
879
+ create_table :rooms, force: true do |t|
880
+ t.references :user
881
+ t.references :owner
882
+ end
883
+
884
+ disable_referential_integrity do
885
+ create_table :seminars, force: :cascade do |t|
886
+ t.string :name
887
+ end
888
+
889
+ create_table :sessions, force: :cascade do |t|
890
+ t.date :start_date
891
+ t.date :end_date
892
+ t.string :name
893
+ end
894
+
895
+ create_table :sections, force: :cascade do |t|
896
+ t.string :short_name
897
+ t.belongs_to :session, foreign_key: true
898
+ t.belongs_to :seminar, foreign_key: true
899
+ end
900
+ end
901
+
740
902
  create_table :shape_expressions, force: true do |t|
741
903
  t.string :paint_type
742
904
  t.integer :paint_id
@@ -760,17 +922,25 @@ ActiveRecord::Schema.define do
760
922
  create_table :ship_parts, force: true do |t|
761
923
  t.string :name
762
924
  t.integer :ship_id
763
- if subsecond_precision_supported?
925
+ if supports_datetime_with_precision?
764
926
  t.datetime :updated_at, precision: 6
765
927
  else
766
928
  t.datetime :updated_at
767
929
  end
768
930
  end
769
931
 
932
+ create_table :squeaks, force: true do |t|
933
+ t.integer :mouse_id
934
+ end
935
+
770
936
  create_table :prisoners, force: true do |t|
771
937
  t.belongs_to :ship
772
938
  end
773
939
 
940
+ create_table :sinks, force: true do |t|
941
+ t.references :kitchen
942
+ end
943
+
774
944
  create_table :shop_accounts, force: true do |t|
775
945
  t.references :customer
776
946
  t.references :customer_carrier
@@ -784,20 +954,23 @@ ActiveRecord::Schema.define do
784
954
 
785
955
  create_table :sponsors, force: true do |t|
786
956
  t.integer :club_id
787
- t.integer :sponsorable_id
788
- t.string :sponsorable_type
957
+ t.references :sponsorable, polymorphic: true, index: false
958
+ t.references :sponsor, polymorphic: true, index: false
789
959
  end
790
960
 
791
- create_table :string_key_objects, id: false, primary_key: :id, force: true do |t|
792
- t.string :id
793
- t.string :name
794
- t.integer :lock_version, null: false, default: 0
961
+ create_table :string_key_objects, id: false, force: true do |t|
962
+ t.string :id, null: false
963
+ t.string :name
964
+ t.integer :lock_version, null: false, default: 0
965
+ t.index :id, unique: true
795
966
  end
796
967
 
797
- create_table :subscribers, force: true, id: false do |t|
968
+ create_table :subscribers, id: false, force: true do |t|
798
969
  t.string :nick, null: false
799
970
  t.string :name
800
- t.column :books_count, :integer, null: false, default: 0
971
+ t.integer :id
972
+ t.integer :books_count, null: false, default: 0
973
+ t.integer :update_count, null: false, default: 0
801
974
  t.index :nick, unique: true
802
975
  end
803
976
 
@@ -817,6 +990,7 @@ ActiveRecord::Schema.define do
817
990
  t.column :taggable_type, :string
818
991
  t.column :taggable_id, :integer
819
992
  t.string :comment
993
+ t.string :type
820
994
  end
821
995
 
822
996
  create_table :tasks, force: true do |t|
@@ -828,7 +1002,7 @@ ActiveRecord::Schema.define do
828
1002
  t.string :title, limit: 250
829
1003
  t.string :author_name
830
1004
  t.string :author_email_address
831
- if subsecond_precision_supported?
1005
+ if supports_datetime_with_precision?
832
1006
  t.datetime :written_on, precision: 6
833
1007
  else
834
1008
  t.datetime :written_on
@@ -837,7 +1011,7 @@ ActiveRecord::Schema.define do
837
1011
  t.date :last_read
838
1012
  # use VARCHAR2(4000) instead of CLOB datatype as CLOB data type has many limitations in
839
1013
  # Oracle SELECT WHERE clause which causes many unit test failures
840
- if current_adapter?(:OracleAdapter) || current_adapter?(:IBM_DBAdapter)
1014
+ if current_adapter?(:OracleAdapter)
841
1015
  t.string :content, limit: 4000
842
1016
  t.string :important, limit: 4000
843
1017
  else
@@ -851,11 +1025,8 @@ ActiveRecord::Schema.define do
851
1025
  t.string :parent_title
852
1026
  t.string :type
853
1027
  t.string :group
854
- if subsecond_precision_supported?
855
- t.timestamps null: true, precision: 6
856
- else
857
- t.timestamps null: true
858
- end
1028
+ t.timestamps null: true
1029
+ t.index [:author_name, :title]
859
1030
  end
860
1031
 
861
1032
  create_table :toys, primary_key: :toy_id, force: true do |t|
@@ -872,14 +1043,6 @@ ActiveRecord::Schema.define do
872
1043
  t.datetime :updated_at
873
1044
  end
874
1045
 
875
- create_table :treasures, force: true do |t|
876
- t.column :name, :string
877
- t.column :type, :string
878
- t.column :looter_id, :integer
879
- t.column :looter_type, :string
880
- t.belongs_to :ship
881
- end
882
-
883
1046
  create_table :tuning_pegs, force: true do |t|
884
1047
  t.integer :guitar_id
885
1048
  t.float :pitch
@@ -889,6 +1052,13 @@ ActiveRecord::Schema.define do
889
1052
  t.integer :car_id
890
1053
  end
891
1054
 
1055
+ create_table :unused_destroy_asyncs, force: true do |t|
1056
+ end
1057
+
1058
+ create_table :unused_belongs_to, force: true do |t|
1059
+ t.belongs_to :unused_destroy_async
1060
+ end
1061
+
892
1062
  create_table :variants, force: true do |t|
893
1063
  t.references :product
894
1064
  t.string :name
@@ -898,7 +1068,7 @@ ActiveRecord::Schema.define do
898
1068
  t.column :label, :string
899
1069
  end
900
1070
 
901
- create_table 'warehouse_things', force: true do |t|
1071
+ create_table "warehouse_things", force: true do |t|
902
1072
  t.integer :value
903
1073
  end
904
1074
 
@@ -906,46 +1076,53 @@ ActiveRecord::Schema.define do
906
1076
  create_table(t, force: true) { }
907
1077
  end
908
1078
 
909
- # NOTE - the following 4 tables are used by models that have :inverse_of options on the associations
910
- create_table :men, force: true do |t|
1079
+ create_table :humans, force: true do |t|
911
1080
  t.string :name
912
1081
  end
913
1082
 
914
1083
  create_table :faces, force: true do |t|
915
1084
  t.string :description
916
- t.integer :man_id
917
- t.integer :polymorphic_man_id
918
- t.string :polymorphic_man_type
919
- t.integer :poly_man_without_inverse_id
920
- t.string :poly_man_without_inverse_type
921
- t.integer :horrible_polymorphic_man_id
922
- t.string :horrible_polymorphic_man_type
1085
+ t.integer :human_id
1086
+ t.integer :polymorphic_human_id
1087
+ t.string :polymorphic_human_type
1088
+ t.integer :poly_human_without_inverse_id
1089
+ t.string :poly_human_without_inverse_type
1090
+ t.integer :puzzled_polymorphic_human_id
1091
+ t.string :puzzled_polymorphic_human_type
1092
+ t.references :super_human, polymorphic: true, index: false
923
1093
  end
924
1094
 
925
1095
  create_table :interests, force: true do |t|
926
1096
  t.string :topic
927
- t.integer :man_id
928
- t.integer :polymorphic_man_id
929
- t.string :polymorphic_man_type
1097
+ t.integer :human_id
1098
+ t.integer :polymorphic_human_id
1099
+ t.string :polymorphic_human_type
930
1100
  t.integer :zine_id
931
1101
  end
932
1102
 
933
- create_table :wheels, force: true do |t|
934
- t.references :wheelable, polymorphic: true
1103
+ create_table :zines, force: true do |t|
1104
+ t.string :title
935
1105
  end
936
1106
 
937
- create_table :zines, force: true do |t|
1107
+ create_table :strict_zines, force: true do |t|
938
1108
  t.string :title
939
1109
  end
940
1110
 
941
- create_table :countries, force: true, id: false, primary_key: 'country_id' do |t|
942
- t.string :country_id
1111
+ create_table :wheels, force: true do |t|
1112
+ t.integer :size
1113
+ t.references :wheelable, polymorphic: true
1114
+ end
1115
+
1116
+ create_table :countries, force: true, id: false do |t|
1117
+ t.string :country_id, primary_key: true
943
1118
  t.string :name
944
1119
  end
945
- create_table :treaties, force: true, id: false, primary_key: 'treaty_id' do |t|
946
- t.string :treaty_id
1120
+
1121
+ create_table :treaties, force: true, id: false do |t|
1122
+ t.string :treaty_id, primary_key: true
947
1123
  t.string :name
948
1124
  end
1125
+
949
1126
  create_table :countries_treaties, force: true, primary_key: [:country_id, :treaty_id] do |t|
950
1127
  t.string :country_id, null: false
951
1128
  t.string :treaty_id, null: false
@@ -963,9 +1140,9 @@ ActiveRecord::Schema.define do
963
1140
  t.string :name
964
1141
  end
965
1142
  create_table :weirds, force: true do |t|
966
- t.string 'a$b'
967
- t.string 'なまえ'
968
- t.string 'from'
1143
+ t.string "a$b"
1144
+ t.string "なまえ"
1145
+ t.string "from"
969
1146
  end
970
1147
 
971
1148
  create_table :nodes, force: true do |t|
@@ -987,6 +1164,7 @@ ActiveRecord::Schema.define do
987
1164
  create_table :cake_designers, force: true do |t|
988
1165
  end
989
1166
  create_table :drink_designers, force: true do |t|
1167
+ t.string :name
990
1168
  end
991
1169
  create_table :chefs, force: true do |t|
992
1170
  t.integer :employable_id
@@ -994,6 +1172,7 @@ ActiveRecord::Schema.define do
994
1172
  t.integer :department_id
995
1173
  t.string :employable_list_type
996
1174
  t.integer :employable_list_id
1175
+ t.timestamps
997
1176
  end
998
1177
  create_table :recipes, force: true do |t|
999
1178
  t.integer :chef_id
@@ -1003,23 +1182,23 @@ ActiveRecord::Schema.define do
1003
1182
  create_table :records, force: true do |t|
1004
1183
  end
1005
1184
 
1006
- if supports_foreign_keys?
1007
- # fk_test_has_fk should be before fk_test_has_pk
1008
- create_table :fk_test_has_fk, force: true do |t|
1009
- t.integer :fk_id, null: false
1185
+ disable_referential_integrity do
1186
+ create_table :fk_test_has_pk, primary_key: "pk_id", force: :cascade do |t|
1010
1187
  end
1011
1188
 
1012
- create_table :fk_test_has_pk, force: true, primary_key: "pk_id" do |t|
1189
+ create_table :fk_test_has_fk, force: true do |t|
1190
+ t.references :fk, null: false
1191
+ t.foreign_key :fk_test_has_pk, column: "fk_id", name: "fk_name", primary_key: "pk_id"
1013
1192
  end
1014
-
1015
- add_foreign_key :fk_test_has_fk, :fk_test_has_pk, column: "fk_id", name: "fk_name", primary_key: "pk_id"
1016
1193
  end
1017
1194
 
1018
1195
  create_table :overloaded_types, force: true do |t|
1019
1196
  t.float :overloaded_float, default: 500
1020
1197
  t.float :unoverloaded_float
1021
1198
  t.string :overloaded_string_with_limit, limit: 255
1022
- t.string :string_with_default, default: 'the original default'
1199
+ t.string :string_with_default, default: "the original default"
1200
+ t.string :inferred_string, limit: 255
1201
+ t.datetime :starts_at, :ends_at
1023
1202
  end
1024
1203
 
1025
1204
  create_table :users, force: true do |t|
@@ -1033,6 +1212,7 @@ ActiveRecord::Schema.define do
1033
1212
 
1034
1213
  create_table :non_primary_keys, force: true, id: false do |t|
1035
1214
  t.integer :id
1215
+ t.datetime :created_at
1036
1216
  end
1037
1217
  end
1038
1218