activerecord 2.3.18 → 3.0.0.beta

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of activerecord might be problematic. Click here for more details.

Files changed (378) hide show
  1. data/CHANGELOG +105 -34
  2. data/examples/performance.rb +3 -39
  3. data/examples/simple.rb +14 -0
  4. data/lib/active_record.rb +81 -47
  5. data/lib/active_record/aggregations.rb +1 -3
  6. data/lib/active_record/association_preload.rb +39 -54
  7. data/lib/active_record/associations.rb +262 -419
  8. data/lib/active_record/associations/association_collection.rb +85 -100
  9. data/lib/active_record/associations/association_proxy.rb +20 -18
  10. data/lib/active_record/associations/belongs_to_association.rb +8 -8
  11. data/lib/active_record/associations/has_and_belongs_to_many_association.rb +13 -35
  12. data/lib/active_record/associations/has_many_association.rb +11 -19
  13. data/lib/active_record/associations/has_many_through_association.rb +30 -183
  14. data/lib/active_record/associations/has_one_association.rb +10 -10
  15. data/lib/active_record/associations/has_one_through_association.rb +13 -11
  16. data/lib/active_record/associations/through_association_scope.rb +153 -0
  17. data/lib/active_record/attribute_methods.rb +17 -370
  18. data/lib/active_record/attribute_methods/before_type_cast.rb +33 -0
  19. data/lib/active_record/attribute_methods/dirty.rb +87 -0
  20. data/lib/active_record/attribute_methods/primary_key.rb +44 -0
  21. data/lib/active_record/attribute_methods/query.rb +37 -0
  22. data/lib/active_record/attribute_methods/read.rb +116 -0
  23. data/lib/active_record/attribute_methods/time_zone_conversion.rb +60 -0
  24. data/lib/active_record/attribute_methods/write.rb +37 -0
  25. data/lib/active_record/autosave_association.rb +20 -41
  26. data/lib/active_record/base.rb +357 -1180
  27. data/lib/active_record/batches.rb +10 -16
  28. data/lib/active_record/callbacks.rb +66 -126
  29. data/lib/active_record/connection_adapters/abstract/connection_pool.rb +17 -13
  30. data/lib/active_record/connection_adapters/abstract/connection_specification.rb +5 -25
  31. data/lib/active_record/connection_adapters/abstract/database_statements.rb +4 -43
  32. data/lib/active_record/connection_adapters/abstract/query_cache.rb +3 -2
  33. data/lib/active_record/connection_adapters/abstract/quoting.rb +15 -4
  34. data/lib/active_record/connection_adapters/abstract/schema_definitions.rb +1 -1
  35. data/lib/active_record/connection_adapters/abstract/schema_statements.rb +18 -72
  36. data/lib/active_record/connection_adapters/abstract_adapter.rb +16 -49
  37. data/lib/active_record/connection_adapters/mysql_adapter.rb +15 -27
  38. data/lib/active_record/connection_adapters/postgresql_adapter.rb +84 -46
  39. data/lib/active_record/connection_adapters/sqlite3_adapter.rb +9 -3
  40. data/lib/active_record/connection_adapters/sqlite_adapter.rb +34 -65
  41. data/lib/active_record/fixtures.rb +21 -25
  42. data/lib/active_record/locale/en.yml +9 -27
  43. data/lib/active_record/locking/optimistic.rb +16 -48
  44. data/lib/active_record/migration.rb +59 -46
  45. data/lib/active_record/named_scope.rb +85 -92
  46. data/lib/active_record/nested_attributes.rb +18 -24
  47. data/lib/active_record/observer.rb +18 -94
  48. data/lib/active_record/railtie.rb +83 -0
  49. data/lib/active_record/railties/controller_runtime.rb +38 -0
  50. data/lib/active_record/railties/databases.rake +477 -0
  51. data/lib/active_record/railties/subscriber.rb +27 -0
  52. data/lib/active_record/reflection.rb +2 -15
  53. data/lib/active_record/relation.rb +339 -0
  54. data/lib/active_record/relation/calculations.rb +259 -0
  55. data/lib/active_record/relation/finder_methods.rb +315 -0
  56. data/lib/active_record/relation/predicate_builder.rb +46 -0
  57. data/lib/active_record/relation/query_methods.rb +218 -0
  58. data/lib/active_record/relation/spawn_methods.rb +102 -0
  59. data/lib/active_record/schema_dumper.rb +10 -6
  60. data/lib/active_record/serialization.rb +31 -74
  61. data/lib/active_record/serializers/xml_serializer.rb +33 -121
  62. data/lib/active_record/session_store.rb +1 -9
  63. data/lib/active_record/test_case.rb +1 -3
  64. data/lib/active_record/timestamp.rb +7 -5
  65. data/lib/active_record/transactions.rb +9 -9
  66. data/lib/active_record/validations.rb +51 -1100
  67. data/lib/active_record/validations/associated.rb +47 -0
  68. data/lib/active_record/validations/uniqueness.rb +181 -0
  69. data/lib/active_record/version.rb +3 -3
  70. data/lib/generators/active_record.rb +30 -0
  71. data/lib/generators/active_record/migration/migration_generator.rb +25 -0
  72. data/lib/generators/active_record/migration/templates/migration.rb +11 -0
  73. data/lib/generators/active_record/model/model_generator.rb +33 -0
  74. data/lib/generators/active_record/model/templates/migration.rb +16 -0
  75. data/lib/generators/active_record/model/templates/model.rb +5 -0
  76. data/lib/generators/active_record/observer/observer_generator.rb +15 -0
  77. data/lib/generators/active_record/observer/templates/observer.rb +2 -0
  78. data/lib/generators/active_record/session_migration/session_migration_generator.rb +24 -0
  79. data/lib/generators/active_record/session_migration/templates/migration.rb +16 -0
  80. metadata +67 -325
  81. data/RUNNING_UNIT_TESTS +0 -36
  82. data/Rakefile +0 -268
  83. data/install.rb +0 -30
  84. data/lib/active_record/calculations.rb +0 -321
  85. data/lib/active_record/connection_adapters/abstract/database_limits.rb +0 -57
  86. data/lib/active_record/dirty.rb +0 -183
  87. data/lib/active_record/serializers/json_serializer.rb +0 -91
  88. data/lib/activerecord.rb +0 -2
  89. data/test/assets/example.log +0 -1
  90. data/test/assets/flowers.jpg +0 -0
  91. data/test/cases/aaa_create_tables_test.rb +0 -24
  92. data/test/cases/active_schema_test_mysql.rb +0 -122
  93. data/test/cases/active_schema_test_postgresql.rb +0 -24
  94. data/test/cases/adapter_test.rb +0 -144
  95. data/test/cases/aggregations_test.rb +0 -167
  96. data/test/cases/ar_schema_test.rb +0 -32
  97. data/test/cases/associations/belongs_to_associations_test.rb +0 -438
  98. data/test/cases/associations/callbacks_test.rb +0 -161
  99. data/test/cases/associations/cascaded_eager_loading_test.rb +0 -131
  100. data/test/cases/associations/eager_load_includes_full_sti_class_test.rb +0 -36
  101. data/test/cases/associations/eager_load_nested_include_test.rb +0 -131
  102. data/test/cases/associations/eager_load_nested_polymorphic_include.rb +0 -19
  103. data/test/cases/associations/eager_singularization_test.rb +0 -145
  104. data/test/cases/associations/eager_test.rb +0 -852
  105. data/test/cases/associations/extension_test.rb +0 -62
  106. data/test/cases/associations/habtm_join_table_test.rb +0 -56
  107. data/test/cases/associations/has_and_belongs_to_many_associations_test.rb +0 -827
  108. data/test/cases/associations/has_many_associations_test.rb +0 -1273
  109. data/test/cases/associations/has_many_through_associations_test.rb +0 -360
  110. data/test/cases/associations/has_one_associations_test.rb +0 -330
  111. data/test/cases/associations/has_one_through_associations_test.rb +0 -209
  112. data/test/cases/associations/inner_join_association_test.rb +0 -93
  113. data/test/cases/associations/inverse_associations_test.rb +0 -566
  114. data/test/cases/associations/join_model_test.rb +0 -712
  115. data/test/cases/associations_test.rb +0 -282
  116. data/test/cases/attribute_methods_test.rb +0 -305
  117. data/test/cases/autosave_association_test.rb +0 -1218
  118. data/test/cases/base_test.rb +0 -2166
  119. data/test/cases/batches_test.rb +0 -81
  120. data/test/cases/binary_test.rb +0 -30
  121. data/test/cases/calculations_test.rb +0 -360
  122. data/test/cases/callbacks_observers_test.rb +0 -38
  123. data/test/cases/callbacks_test.rb +0 -438
  124. data/test/cases/class_inheritable_attributes_test.rb +0 -32
  125. data/test/cases/column_alias_test.rb +0 -17
  126. data/test/cases/column_definition_test.rb +0 -70
  127. data/test/cases/connection_pool_test.rb +0 -25
  128. data/test/cases/connection_test_firebird.rb +0 -8
  129. data/test/cases/connection_test_mysql.rb +0 -65
  130. data/test/cases/copy_table_test_sqlite.rb +0 -80
  131. data/test/cases/counter_cache_test.rb +0 -84
  132. data/test/cases/database_statements_test.rb +0 -12
  133. data/test/cases/datatype_test_postgresql.rb +0 -204
  134. data/test/cases/date_time_test.rb +0 -37
  135. data/test/cases/default_test_firebird.rb +0 -16
  136. data/test/cases/defaults_test.rb +0 -111
  137. data/test/cases/deprecated_finder_test.rb +0 -30
  138. data/test/cases/dirty_test.rb +0 -316
  139. data/test/cases/finder_respond_to_test.rb +0 -76
  140. data/test/cases/finder_test.rb +0 -1098
  141. data/test/cases/fixtures_test.rb +0 -661
  142. data/test/cases/helper.rb +0 -68
  143. data/test/cases/i18n_test.rb +0 -46
  144. data/test/cases/inheritance_test.rb +0 -262
  145. data/test/cases/invalid_date_test.rb +0 -24
  146. data/test/cases/json_serialization_test.rb +0 -219
  147. data/test/cases/lifecycle_test.rb +0 -193
  148. data/test/cases/locking_test.rb +0 -350
  149. data/test/cases/method_scoping_test.rb +0 -704
  150. data/test/cases/migration_test.rb +0 -1649
  151. data/test/cases/migration_test_firebird.rb +0 -124
  152. data/test/cases/mixin_test.rb +0 -96
  153. data/test/cases/modules_test.rb +0 -109
  154. data/test/cases/multiple_db_test.rb +0 -85
  155. data/test/cases/named_scope_test.rb +0 -372
  156. data/test/cases/nested_attributes_test.rb +0 -840
  157. data/test/cases/pk_test.rb +0 -119
  158. data/test/cases/pooled_connections_test.rb +0 -103
  159. data/test/cases/query_cache_test.rb +0 -129
  160. data/test/cases/readonly_test.rb +0 -107
  161. data/test/cases/reflection_test.rb +0 -234
  162. data/test/cases/reload_models_test.rb +0 -22
  163. data/test/cases/repair_helper.rb +0 -50
  164. data/test/cases/reserved_word_test_mysql.rb +0 -176
  165. data/test/cases/sanitize_test.rb +0 -25
  166. data/test/cases/schema_authorization_test_postgresql.rb +0 -75
  167. data/test/cases/schema_dumper_test.rb +0 -211
  168. data/test/cases/schema_test_postgresql.rb +0 -178
  169. data/test/cases/serialization_test.rb +0 -47
  170. data/test/cases/sp_test_mysql.rb +0 -16
  171. data/test/cases/synonym_test_oracle.rb +0 -17
  172. data/test/cases/timestamp_test.rb +0 -75
  173. data/test/cases/transactions_test.rb +0 -543
  174. data/test/cases/unconnected_test.rb +0 -32
  175. data/test/cases/validations_i18n_test.rb +0 -925
  176. data/test/cases/validations_test.rb +0 -1684
  177. data/test/cases/xml_serialization_test.rb +0 -240
  178. data/test/cases/yaml_serialization_test.rb +0 -11
  179. data/test/config.rb +0 -5
  180. data/test/connections/jdbc_jdbcderby/connection.rb +0 -18
  181. data/test/connections/jdbc_jdbch2/connection.rb +0 -18
  182. data/test/connections/jdbc_jdbchsqldb/connection.rb +0 -18
  183. data/test/connections/jdbc_jdbcmysql/connection.rb +0 -26
  184. data/test/connections/jdbc_jdbcpostgresql/connection.rb +0 -26
  185. data/test/connections/jdbc_jdbcsqlite3/connection.rb +0 -25
  186. data/test/connections/native_db2/connection.rb +0 -25
  187. data/test/connections/native_firebird/connection.rb +0 -26
  188. data/test/connections/native_frontbase/connection.rb +0 -27
  189. data/test/connections/native_mysql/connection.rb +0 -25
  190. data/test/connections/native_openbase/connection.rb +0 -21
  191. data/test/connections/native_oracle/connection.rb +0 -27
  192. data/test/connections/native_postgresql/connection.rb +0 -21
  193. data/test/connections/native_sqlite/connection.rb +0 -25
  194. data/test/connections/native_sqlite3/connection.rb +0 -25
  195. data/test/connections/native_sqlite3/in_memory_connection.rb +0 -18
  196. data/test/connections/native_sybase/connection.rb +0 -23
  197. data/test/fixtures/accounts.yml +0 -29
  198. data/test/fixtures/all/developers.yml +0 -0
  199. data/test/fixtures/all/people.csv +0 -0
  200. data/test/fixtures/all/tasks.yml +0 -0
  201. data/test/fixtures/author_addresses.yml +0 -5
  202. data/test/fixtures/author_favorites.yml +0 -4
  203. data/test/fixtures/authors.yml +0 -9
  204. data/test/fixtures/binaries.yml +0 -132
  205. data/test/fixtures/books.yml +0 -7
  206. data/test/fixtures/categories.yml +0 -14
  207. data/test/fixtures/categories/special_categories.yml +0 -9
  208. data/test/fixtures/categories/subsubdir/arbitrary_filename.yml +0 -4
  209. data/test/fixtures/categories_ordered.yml +0 -7
  210. data/test/fixtures/categories_posts.yml +0 -23
  211. data/test/fixtures/categorizations.yml +0 -17
  212. data/test/fixtures/clubs.yml +0 -6
  213. data/test/fixtures/comments.yml +0 -59
  214. data/test/fixtures/companies.yml +0 -56
  215. data/test/fixtures/computers.yml +0 -4
  216. data/test/fixtures/courses.yml +0 -7
  217. data/test/fixtures/customers.yml +0 -26
  218. data/test/fixtures/developers.yml +0 -21
  219. data/test/fixtures/developers_projects.yml +0 -17
  220. data/test/fixtures/edges.yml +0 -6
  221. data/test/fixtures/entrants.yml +0 -14
  222. data/test/fixtures/faces.yml +0 -11
  223. data/test/fixtures/fk_test_has_fk.yml +0 -3
  224. data/test/fixtures/fk_test_has_pk.yml +0 -2
  225. data/test/fixtures/funny_jokes.yml +0 -10
  226. data/test/fixtures/interests.yml +0 -33
  227. data/test/fixtures/items.yml +0 -4
  228. data/test/fixtures/jobs.yml +0 -7
  229. data/test/fixtures/legacy_things.yml +0 -3
  230. data/test/fixtures/mateys.yml +0 -4
  231. data/test/fixtures/member_types.yml +0 -6
  232. data/test/fixtures/members.yml +0 -6
  233. data/test/fixtures/memberships.yml +0 -20
  234. data/test/fixtures/men.yml +0 -5
  235. data/test/fixtures/minimalistics.yml +0 -2
  236. data/test/fixtures/mixed_case_monkeys.yml +0 -6
  237. data/test/fixtures/mixins.yml +0 -29
  238. data/test/fixtures/movies.yml +0 -7
  239. data/test/fixtures/naked/csv/accounts.csv +0 -1
  240. data/test/fixtures/naked/yml/accounts.yml +0 -1
  241. data/test/fixtures/naked/yml/companies.yml +0 -1
  242. data/test/fixtures/naked/yml/courses.yml +0 -1
  243. data/test/fixtures/organizations.yml +0 -5
  244. data/test/fixtures/owners.yml +0 -7
  245. data/test/fixtures/parrots.yml +0 -27
  246. data/test/fixtures/parrots_pirates.yml +0 -7
  247. data/test/fixtures/people.yml +0 -15
  248. data/test/fixtures/pets.yml +0 -14
  249. data/test/fixtures/pirates.yml +0 -9
  250. data/test/fixtures/polymorphic_designs.yml +0 -19
  251. data/test/fixtures/polymorphic_prices.yml +0 -19
  252. data/test/fixtures/posts.yml +0 -52
  253. data/test/fixtures/price_estimates.yml +0 -7
  254. data/test/fixtures/projects.yml +0 -7
  255. data/test/fixtures/readers.yml +0 -9
  256. data/test/fixtures/references.yml +0 -17
  257. data/test/fixtures/reserved_words/distinct.yml +0 -5
  258. data/test/fixtures/reserved_words/distincts_selects.yml +0 -11
  259. data/test/fixtures/reserved_words/group.yml +0 -14
  260. data/test/fixtures/reserved_words/select.yml +0 -8
  261. data/test/fixtures/reserved_words/values.yml +0 -7
  262. data/test/fixtures/ships.yml +0 -5
  263. data/test/fixtures/sponsors.yml +0 -9
  264. data/test/fixtures/subscribers.yml +0 -7
  265. data/test/fixtures/subscriptions.yml +0 -12
  266. data/test/fixtures/taggings.yml +0 -28
  267. data/test/fixtures/tags.yml +0 -7
  268. data/test/fixtures/tasks.yml +0 -7
  269. data/test/fixtures/tees.yml +0 -4
  270. data/test/fixtures/ties.yml +0 -4
  271. data/test/fixtures/topics.yml +0 -42
  272. data/test/fixtures/toys.yml +0 -4
  273. data/test/fixtures/treasures.yml +0 -10
  274. data/test/fixtures/vertices.yml +0 -4
  275. data/test/fixtures/warehouse-things.yml +0 -3
  276. data/test/fixtures/zines.yml +0 -5
  277. data/test/migrations/broken/100_migration_that_raises_exception.rb +0 -10
  278. data/test/migrations/decimal/1_give_me_big_numbers.rb +0 -15
  279. data/test/migrations/duplicate/1_people_have_last_names.rb +0 -9
  280. data/test/migrations/duplicate/2_we_need_reminders.rb +0 -12
  281. data/test/migrations/duplicate/3_foo.rb +0 -7
  282. data/test/migrations/duplicate/3_innocent_jointable.rb +0 -12
  283. data/test/migrations/duplicate_names/20080507052938_chunky.rb +0 -7
  284. data/test/migrations/duplicate_names/20080507053028_chunky.rb +0 -7
  285. data/test/migrations/interleaved/pass_1/3_innocent_jointable.rb +0 -12
  286. data/test/migrations/interleaved/pass_2/1_people_have_last_names.rb +0 -9
  287. data/test/migrations/interleaved/pass_2/3_innocent_jointable.rb +0 -12
  288. data/test/migrations/interleaved/pass_3/1_people_have_last_names.rb +0 -9
  289. data/test/migrations/interleaved/pass_3/2_i_raise_on_down.rb +0 -8
  290. data/test/migrations/interleaved/pass_3/3_innocent_jointable.rb +0 -12
  291. data/test/migrations/missing/1000_people_have_middle_names.rb +0 -9
  292. data/test/migrations/missing/1_people_have_last_names.rb +0 -9
  293. data/test/migrations/missing/3_we_need_reminders.rb +0 -12
  294. data/test/migrations/missing/4_innocent_jointable.rb +0 -12
  295. data/test/migrations/valid/1_people_have_last_names.rb +0 -9
  296. data/test/migrations/valid/2_we_need_reminders.rb +0 -12
  297. data/test/migrations/valid/3_innocent_jointable.rb +0 -12
  298. data/test/models/author.rb +0 -151
  299. data/test/models/auto_id.rb +0 -4
  300. data/test/models/binary.rb +0 -2
  301. data/test/models/bird.rb +0 -9
  302. data/test/models/book.rb +0 -4
  303. data/test/models/categorization.rb +0 -5
  304. data/test/models/category.rb +0 -34
  305. data/test/models/citation.rb +0 -6
  306. data/test/models/club.rb +0 -13
  307. data/test/models/column_name.rb +0 -3
  308. data/test/models/comment.rb +0 -29
  309. data/test/models/company.rb +0 -173
  310. data/test/models/company_in_module.rb +0 -78
  311. data/test/models/computer.rb +0 -3
  312. data/test/models/contact.rb +0 -16
  313. data/test/models/contract.rb +0 -5
  314. data/test/models/course.rb +0 -3
  315. data/test/models/customer.rb +0 -73
  316. data/test/models/default.rb +0 -2
  317. data/test/models/developer.rb +0 -101
  318. data/test/models/edge.rb +0 -5
  319. data/test/models/entrant.rb +0 -3
  320. data/test/models/essay.rb +0 -3
  321. data/test/models/event.rb +0 -3
  322. data/test/models/event_author.rb +0 -8
  323. data/test/models/face.rb +0 -7
  324. data/test/models/guid.rb +0 -2
  325. data/test/models/interest.rb +0 -5
  326. data/test/models/invoice.rb +0 -4
  327. data/test/models/item.rb +0 -7
  328. data/test/models/job.rb +0 -5
  329. data/test/models/joke.rb +0 -3
  330. data/test/models/keyboard.rb +0 -3
  331. data/test/models/legacy_thing.rb +0 -3
  332. data/test/models/line_item.rb +0 -3
  333. data/test/models/man.rb +0 -9
  334. data/test/models/matey.rb +0 -4
  335. data/test/models/member.rb +0 -12
  336. data/test/models/member_detail.rb +0 -5
  337. data/test/models/member_type.rb +0 -3
  338. data/test/models/membership.rb +0 -9
  339. data/test/models/minimalistic.rb +0 -2
  340. data/test/models/mixed_case_monkey.rb +0 -3
  341. data/test/models/movie.rb +0 -5
  342. data/test/models/order.rb +0 -4
  343. data/test/models/organization.rb +0 -6
  344. data/test/models/owner.rb +0 -5
  345. data/test/models/parrot.rb +0 -22
  346. data/test/models/person.rb +0 -16
  347. data/test/models/pet.rb +0 -5
  348. data/test/models/pirate.rb +0 -80
  349. data/test/models/polymorphic_design.rb +0 -3
  350. data/test/models/polymorphic_price.rb +0 -3
  351. data/test/models/post.rb +0 -102
  352. data/test/models/price_estimate.rb +0 -3
  353. data/test/models/project.rb +0 -30
  354. data/test/models/reader.rb +0 -4
  355. data/test/models/reference.rb +0 -4
  356. data/test/models/reply.rb +0 -46
  357. data/test/models/ship.rb +0 -19
  358. data/test/models/ship_part.rb +0 -7
  359. data/test/models/sponsor.rb +0 -4
  360. data/test/models/subject.rb +0 -4
  361. data/test/models/subscriber.rb +0 -8
  362. data/test/models/subscription.rb +0 -4
  363. data/test/models/tag.rb +0 -7
  364. data/test/models/tagging.rb +0 -10
  365. data/test/models/task.rb +0 -3
  366. data/test/models/tee.rb +0 -4
  367. data/test/models/tie.rb +0 -4
  368. data/test/models/topic.rb +0 -80
  369. data/test/models/toy.rb +0 -6
  370. data/test/models/treasure.rb +0 -8
  371. data/test/models/vertex.rb +0 -9
  372. data/test/models/warehouse_thing.rb +0 -5
  373. data/test/models/zine.rb +0 -3
  374. data/test/schema/mysql_specific_schema.rb +0 -31
  375. data/test/schema/postgresql_specific_schema.rb +0 -114
  376. data/test/schema/schema.rb +0 -550
  377. data/test/schema/schema2.rb +0 -6
  378. data/test/schema/sqlite_specific_schema.rb +0 -25
@@ -1,550 +0,0 @@
1
-
2
- ActiveRecord::Schema.define do
3
- def except(adapter_names_to_exclude)
4
- unless [adapter_names_to_exclude].flatten.include?(adapter_name)
5
- yield
6
- end
7
- end
8
-
9
- #put adapter specific setup here
10
- case adapter_name
11
- # For Firebird, set the sequence values 10000 when create_table is called;
12
- # this prevents primary key collisions between "normally" created records
13
- # and fixture-based (YAML) records.
14
- when "Firebird"
15
- def create_table(*args, &block)
16
- ActiveRecord::Base.connection.create_table(*args, &block)
17
- ActiveRecord::Base.connection.execute "SET GENERATOR #{args.first}_seq TO 10000"
18
- end
19
- end
20
-
21
-
22
- # Please keep these create table statements in alphabetical order
23
- # unless the ordering matters. In which case, define them below
24
- create_table :accounts, :force => true do |t|
25
- t.integer :firm_id
26
- t.string :firm_name
27
- t.integer :credit_limit
28
- end
29
-
30
- create_table :audit_logs, :force => true do |t|
31
- t.column :message, :string, :null=>false
32
- t.column :developer_id, :integer, :null=>false
33
- end
34
-
35
- create_table :authors, :force => true do |t|
36
- t.string :name, :null => false
37
- t.integer :author_address_id
38
- t.integer :author_address_extra_id
39
- end
40
-
41
- create_table :author_addresses, :force => true do |t|
42
- end
43
-
44
- create_table :author_favorites, :force => true do |t|
45
- t.column :author_id, :integer
46
- t.column :favorite_author_id, :integer
47
- end
48
-
49
-
50
- create_table :auto_id_tests, :force => true, :id => false do |t|
51
- t.primary_key :auto_id
52
- t.integer :value
53
- end
54
-
55
- create_table :binaries, :force => true do |t|
56
- t.binary :data
57
- end
58
-
59
- create_table :birds, :force => true do |t|
60
- t.string :name
61
- t.string :color
62
- t.integer :pirate_id
63
- end
64
-
65
- create_table :books, :force => true do |t|
66
- t.column :name, :string
67
- end
68
-
69
- create_table :booleantests, :force => true do |t|
70
- t.boolean :value
71
- end
72
-
73
- create_table "CamelCase", :force => true do |t|
74
- t.string :name
75
- end
76
-
77
- create_table :categories, :force => true do |t|
78
- t.string :name, :null => false
79
- t.string :type
80
- t.integer :categorizations_count
81
- end
82
-
83
- create_table :categories_posts, :force => true, :id => false do |t|
84
- t.integer :category_id, :null => false
85
- t.integer :post_id, :null => false
86
- end
87
-
88
- create_table :categorizations, :force => true do |t|
89
- t.column :category_id, :integer
90
- t.column :post_id, :integer
91
- t.column :author_id, :integer
92
- end
93
-
94
- create_table :citations, :force => true do |t|
95
- t.column :book1_id, :integer
96
- t.column :book2_id, :integer
97
- end
98
-
99
- create_table :clubs, :force => true do |t|
100
- t.string :name
101
- end
102
-
103
- create_table :colnametests, :force => true do |t|
104
- t.integer :references, :null => false
105
- end
106
-
107
- create_table :comments, :force => true do |t|
108
- t.integer :post_id, :null => false
109
- t.text :body, :null => false
110
- t.string :type
111
- end
112
-
113
- create_table :companies, :force => true do |t|
114
- t.string :type
115
- t.string :ruby_type
116
- t.integer :firm_id
117
- t.string :firm_name
118
- t.string :name
119
- t.integer :client_of
120
- t.integer :rating, :default => 1
121
- end
122
-
123
- add_index :companies, [:firm_id, :type, :rating, :ruby_type], :name => "company_index"
124
-
125
- create_table :computers, :force => true do |t|
126
- t.integer :developer, :null => false
127
- t.integer :extendedWarranty, :null => false
128
- end
129
-
130
- create_table :contracts, :force => true do |t|
131
- t.integer :developer_id
132
- t.integer :company_id
133
- end
134
-
135
- create_table :customers, :force => true do |t|
136
- t.string :name
137
- t.integer :balance, :default => 0
138
- t.string :address_street
139
- t.string :address_city
140
- t.string :address_country
141
- t.string :gps_location
142
- end
143
-
144
- create_table :developers, :force => true do |t|
145
- t.string :name
146
- t.integer :salary, :default => 70000
147
- t.datetime :created_at
148
- t.datetime :updated_at
149
- end
150
-
151
- create_table :developers_projects, :force => true, :id => false do |t|
152
- t.integer :developer_id, :null => false
153
- t.integer :project_id, :null => false
154
- t.date :joined_on
155
- t.integer :access_level, :default => 1
156
- end
157
-
158
- create_table :edges, :force => true do |t|
159
- t.column :source_id, :integer, :null => false
160
- t.column :sink_id, :integer, :null => false
161
- end
162
- add_index :edges, [:source_id, :sink_id], :unique => true, :name => 'unique_edge_index'
163
-
164
-
165
- create_table :entrants, :force => true do |t|
166
- t.string :name, :null => false
167
- t.integer :course_id, :null => false
168
- end
169
-
170
- create_table :essays, :force => true do |t|
171
- t.string :name
172
- t.string :writer_id
173
- t.string :writer_type
174
- end
175
-
176
- create_table :events, :force => true do |t|
177
- t.string :title, :limit => 5
178
- t.datetime :ends_on
179
- end
180
-
181
- create_table :event_authors, :force => true do |t|
182
- t.integer :event_id
183
- t.integer :author_id
184
- end
185
-
186
- create_table :funny_jokes, :force => true do |t|
187
- t.string :name
188
- end
189
-
190
- create_table :goofy_string_id, :force => true, :id => false do |t|
191
- t.string :id, :null => false
192
- t.string :info
193
- end
194
-
195
- create_table :invoices, :force => true do |t|
196
- t.integer :balance
197
- t.datetime :updated_at
198
- end
199
-
200
- create_table :items, :force => true do |t|
201
- t.column :name, :integer
202
- end
203
-
204
- create_table :inept_wizards, :force => true do |t|
205
- t.column :name, :string, :null => false
206
- t.column :city, :string, :null => false
207
- t.column :type, :string
208
- end
209
-
210
-
211
- create_table :jobs, :force => true do |t|
212
- t.integer :ideal_reference_id
213
- end
214
-
215
- create_table :keyboards, :force => true, :id => false do |t|
216
- t.primary_key :key_number
217
- t.string :name
218
- end
219
-
220
- create_table :legacy_things, :force => true do |t|
221
- t.integer :tps_report_number
222
- t.integer :version, :null => false, :default => 0
223
- end
224
-
225
- create_table :line_items, :force => true do |t|
226
- t.integer :invoice_id
227
- t.integer :amount
228
- end
229
-
230
- create_table :lock_without_defaults, :force => true do |t|
231
- t.column :lock_version, :integer
232
- end
233
-
234
- create_table :lock_without_defaults_cust, :force => true do |t|
235
- t.column :custom_lock_version, :integer
236
- end
237
-
238
- create_table :mateys, :id => false, :force => true do |t|
239
- t.column :pirate_id, :integer
240
- t.column :target_id, :integer
241
- t.column :weight, :integer
242
- end
243
-
244
- create_table :members, :force => true do |t|
245
- t.string :name
246
- t.integer :member_type_id
247
- end
248
-
249
- create_table :member_details, :force => true do |t|
250
- t.integer :member_id
251
- t.integer :organization_id
252
- t.string :extra_data
253
- end
254
-
255
- create_table :memberships, :force => true do |t|
256
- t.datetime :joined_on
257
- t.integer :club_id, :member_id
258
- t.boolean :favourite, :default => false
259
- t.string :type
260
- end
261
-
262
- create_table :member_types, :force => true do |t|
263
- t.string :name
264
- end
265
-
266
- create_table :references, :force => true do |t|
267
- t.integer :person_id
268
- t.integer :job_id
269
- t.boolean :favourite
270
- t.integer :lock_version, :default => 0
271
- end
272
-
273
- create_table :minimalistics, :force => true do |t|
274
- end
275
-
276
- create_table :mixed_case_monkeys, :force => true, :id => false do |t|
277
- t.primary_key :monkeyID
278
- t.integer :fleaCount
279
- end
280
-
281
- create_table :mixins, :force => true do |t|
282
- t.integer :parent_id
283
- t.integer :pos
284
- t.datetime :created_at
285
- t.datetime :updated_at
286
- t.integer :lft
287
- t.integer :rgt
288
- t.integer :root_id
289
- t.string :type
290
- end
291
-
292
- create_table :movies, :force => true, :id => false do |t|
293
- t.primary_key :movieid
294
- t.string :name
295
- end
296
-
297
- create_table :numeric_data, :force => true do |t|
298
- t.decimal :bank_balance, :precision => 10, :scale => 2
299
- t.decimal :big_bank_balance, :precision => 15, :scale => 2
300
- t.decimal :world_population, :precision => 10, :scale => 0
301
- t.decimal :my_house_population, :precision => 2, :scale => 0
302
- t.decimal :decimal_number_with_default, :precision => 3, :scale => 2, :default => 2.78
303
- t.float :temperature
304
- end
305
-
306
- create_table :orders, :force => true do |t|
307
- t.string :name
308
- t.integer :billing_customer_id
309
- t.integer :shipping_customer_id
310
- end
311
-
312
- create_table :organizations, :force => true do |t|
313
- t.string :name
314
- end
315
-
316
- create_table :owners, :primary_key => :owner_id ,:force => true do |t|
317
- t.string :name
318
- t.column :updated_at, :datetime
319
- t.column :happy_at, :datetime
320
- end
321
-
322
-
323
- create_table :paint_colors, :force => true do |t|
324
- t.integer :non_poly_one_id
325
- end
326
-
327
- create_table :paint_textures, :force => true do |t|
328
- t.integer :non_poly_two_id
329
- end
330
-
331
- create_table :parrots, :force => true do |t|
332
- t.column :name, :string
333
- t.column :parrot_sti_class, :string
334
- t.column :killer_id, :integer
335
- t.column :created_at, :datetime
336
- t.column :created_on, :datetime
337
- t.column :updated_at, :datetime
338
- t.column :updated_on, :datetime
339
- end
340
-
341
- create_table :parrots_pirates, :id => false, :force => true do |t|
342
- t.column :parrot_id, :integer
343
- t.column :pirate_id, :integer
344
- end
345
-
346
- create_table :parrots_treasures, :id => false, :force => true do |t|
347
- t.column :parrot_id, :integer
348
- t.column :treasure_id, :integer
349
- end
350
-
351
- create_table :people, :force => true do |t|
352
- t.string :first_name, :null => false
353
- t.references :primary_contact
354
- t.string :gender, :limit => 1
355
- t.integer :lock_version, :null => false, :default => 0
356
- end
357
-
358
- create_table :pets, :primary_key => :pet_id ,:force => true do |t|
359
- t.string :name
360
- t.integer :owner_id, :integer
361
- end
362
-
363
- create_table :pirates, :force => true do |t|
364
- t.column :catchphrase, :string
365
- t.column :parrot_id, :integer
366
- t.column :created_on, :datetime
367
- t.column :updated_on, :datetime
368
- end
369
-
370
- create_table :polymorphic_designs, :force => true do |t|
371
- t.integer :designable_id
372
- t.string :designable_type
373
- end
374
-
375
- create_table :polymorphic_prices, :force => true do |t|
376
- t.integer :sellable_id
377
- t.string :sellable_type
378
- end
379
-
380
- create_table :posts, :force => true do |t|
381
- t.integer :author_id
382
- t.string :title, :null => false
383
- t.text :body, :null => false
384
- t.string :type
385
- t.integer :comments_count, :default => 0
386
- t.integer :taggings_count, :default => 0
387
- end
388
-
389
- create_table :price_estimates, :force => true do |t|
390
- t.string :estimate_of_type
391
- t.integer :estimate_of_id
392
- t.integer :price
393
- end
394
-
395
- create_table :projects, :force => true do |t|
396
- t.string :name
397
- t.string :type
398
- end
399
-
400
- create_table :readers, :force => true do |t|
401
- t.integer :post_id, :null => false
402
- t.integer :person_id, :null => false
403
- t.boolean :skimmer, :default => false
404
- end
405
-
406
- create_table :shape_expressions, :force => true do |t|
407
- t.string :paint_type
408
- t.integer :paint_id
409
- t.string :shape_type
410
- t.integer :shape_id
411
- end
412
-
413
- create_table :ships, :force => true do |t|
414
- t.string :name
415
- t.integer :pirate_id
416
- t.datetime :created_at
417
- t.datetime :created_on
418
- t.datetime :updated_at
419
- t.datetime :updated_on
420
- end
421
-
422
- create_table :ship_parts, :force => true do |t|
423
- t.string :name
424
- t.integer :ship_id
425
- end
426
-
427
- create_table :sponsors, :force => true do |t|
428
- t.integer :club_id
429
- t.integer :sponsorable_id
430
- t.string :sponsorable_type
431
- end
432
-
433
- create_table :subscribers, :force => true, :id => false do |t|
434
- t.string :nick, :null => false
435
- t.string :name
436
- end
437
- add_index :subscribers, :nick, :unique => true
438
-
439
- create_table :subscriptions, :force => true do |t|
440
- t.string :subscriber_id
441
- t.integer :book_id
442
- end
443
-
444
- create_table :tasks, :force => true do |t|
445
- t.datetime :starting
446
- t.datetime :ending
447
- end
448
-
449
- create_table :ties, :force => true
450
-
451
- create_table :topics, :force => true do |t|
452
- t.string :title
453
- t.string :author_name
454
- t.string :author_email_address
455
- t.datetime :written_on
456
- t.time :bonus_time
457
- t.date :last_read
458
- t.text :content
459
- t.boolean :approved, :default => true
460
- t.integer :replies_count, :default => 0
461
- t.integer :parent_id
462
- t.string :parent_title
463
- t.string :type
464
- t.string :group
465
- end
466
-
467
- create_table :taggings, :force => true do |t|
468
- t.column :tag_id, :integer
469
- t.column :super_tag_id, :integer
470
- t.column :taggable_type, :string
471
- t.column :taggable_id, :integer
472
- end
473
-
474
- create_table :tags, :force => true do |t|
475
- t.column :name, :string
476
- t.column :taggings_count, :integer, :default => 0
477
- end
478
-
479
- create_table :tees, :force => true
480
-
481
- create_table :toys, :primary_key => :toy_id ,:force => true do |t|
482
- t.string :name
483
- t.integer :pet_id, :integer
484
- end
485
-
486
- create_table :treasures, :force => true do |t|
487
- t.column :name, :string
488
- t.column :looter_id, :integer
489
- t.column :looter_type, :string
490
- end
491
-
492
- create_table :vertices, :force => true do |t|
493
- t.column :label, :string
494
- end
495
-
496
- create_table 'warehouse-things', :force => true do |t|
497
- t.integer :value
498
- end
499
-
500
- [:circles, :squares, :triangles, :non_poly_ones, :non_poly_twos].each do |t|
501
- create_table(t, :force => true) { }
502
- end
503
-
504
- create_table :guids, :force => true do |t|
505
- t.column :key, :string
506
- end
507
-
508
- create_table :integer_limits, :force => true do |t|
509
- t.integer :"c_int_without_limit"
510
- (1..8).each do |i|
511
- t.integer :"c_int_#{i}", :limit => i
512
- end
513
- end
514
-
515
- # NOTE - the following 4 tables are used by models that have :inverse_of options on the associations
516
- create_table :men, :force => true do |t|
517
- t.string :name
518
- end
519
-
520
- create_table :faces, :force => true do |t|
521
- t.string :description
522
- t.integer :man_id
523
- t.integer :polymorphic_man_id
524
- t.string :polymorphic_man_type
525
- end
526
-
527
- create_table :interests, :force => true do |t|
528
- t.string :topic
529
- t.integer :man_id
530
- t.integer :polymorphic_man_id
531
- t.string :polymorphic_man_type
532
- t.integer :zine_id
533
- end
534
-
535
- create_table :zines, :force => true do |t|
536
- t.string :title
537
- end
538
-
539
- except 'SQLite' do
540
- # fk_test_has_fk should be before fk_test_has_pk
541
- create_table :fk_test_has_fk, :force => true do |t|
542
- t.integer :fk_id, :null => false
543
- end
544
-
545
- create_table :fk_test_has_pk, :force => true do |t|
546
- end
547
-
548
- 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'})"
549
- end
550
- end