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