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