ibm_db 3.0.5-x86-mingw32 → 5.0.5-x86-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/CHANGES +4 -0
- data/LICENSE +1 -1
- data/ParameterizedQueries README +6 -6
- data/README +38 -55
- data/ext/Makefile +269 -0
- data/ext/extconf.rb +34 -3
- data/ext/gil_release_version +3 -0
- data/ext/ibm_db-i386-mingw32.def +2 -0
- data/ext/ibm_db.c +100 -108
- data/ext/ibm_db.o +0 -0
- data/ext/ibm_db.so +0 -0
- data/ext/mkmf.log +110 -0
- data/ext/ruby_ibm_db_cli.o +0 -0
- data/ext/unicode_support_version +3 -0
- data/lib/active_record/connection_adapters/ibm_db_adapter.rb +923 -527
- data/lib/active_record/connection_adapters/ibmdb_adapter.rb +4 -1
- data/lib/mswin32/ibm_db.rb +7 -39
- data/lib/mswin32/rb2x/i386/ibm_db.so +0 -0
- data/test/active_record/connection_adapters/fake_adapter.rb +8 -5
- data/test/cases/adapter_test.rb +133 -58
- data/test/cases/adapters/mysql2/active_schema_test.rb +193 -0
- data/test/cases/adapters/mysql2/bind_parameter_test.rb +50 -0
- data/test/cases/adapters/mysql2/boolean_test.rb +100 -0
- data/test/cases/adapters/mysql2/case_sensitivity_test.rb +63 -0
- data/test/cases/adapters/mysql2/charset_collation_test.rb +54 -0
- data/test/cases/adapters/mysql2/connection_test.rb +210 -0
- data/test/cases/adapters/mysql2/datetime_precision_quoting_test.rb +45 -0
- data/test/cases/adapters/mysql2/enum_test.rb +26 -0
- data/test/cases/adapters/mysql2/explain_test.rb +21 -0
- data/test/cases/adapters/mysql2/json_test.rb +195 -0
- data/test/cases/adapters/mysql2/mysql2_adapter_test.rb +83 -0
- data/test/cases/adapters/mysql2/reserved_word_test.rb +152 -0
- data/test/cases/adapters/mysql2/schema_migrations_test.rb +59 -0
- data/test/cases/adapters/mysql2/schema_test.rb +126 -0
- data/test/cases/adapters/mysql2/sp_test.rb +36 -0
- data/test/cases/adapters/mysql2/sql_types_test.rb +14 -0
- data/test/cases/adapters/mysql2/table_options_test.rb +42 -0
- data/test/cases/adapters/mysql2/unsigned_type_test.rb +66 -0
- data/test/cases/adapters/postgresql/active_schema_test.rb +98 -0
- data/test/cases/adapters/postgresql/array_test.rb +339 -0
- data/test/cases/adapters/postgresql/bit_string_test.rb +82 -0
- data/test/cases/adapters/postgresql/bytea_test.rb +134 -0
- data/test/cases/adapters/postgresql/case_insensitive_test.rb +26 -0
- data/test/cases/adapters/postgresql/change_schema_test.rb +38 -0
- data/test/cases/adapters/postgresql/cidr_test.rb +25 -0
- data/test/cases/adapters/postgresql/citext_test.rb +78 -0
- data/test/cases/adapters/postgresql/collation_test.rb +53 -0
- data/test/cases/adapters/postgresql/composite_test.rb +132 -0
- data/test/cases/adapters/postgresql/connection_test.rb +257 -0
- data/test/cases/adapters/postgresql/datatype_test.rb +92 -0
- data/test/cases/adapters/postgresql/domain_test.rb +47 -0
- data/test/cases/adapters/postgresql/enum_test.rb +91 -0
- data/test/cases/adapters/postgresql/explain_test.rb +20 -0
- data/test/cases/adapters/postgresql/extension_migration_test.rb +63 -0
- data/test/cases/adapters/postgresql/full_text_test.rb +44 -0
- data/test/cases/adapters/postgresql/geometric_test.rb +378 -0
- data/test/cases/adapters/postgresql/hstore_test.rb +382 -0
- data/test/cases/adapters/postgresql/infinity_test.rb +69 -0
- data/test/cases/adapters/postgresql/integer_test.rb +25 -0
- data/test/cases/adapters/postgresql/json_test.rb +237 -0
- data/test/cases/adapters/postgresql/ltree_test.rb +53 -0
- data/test/cases/adapters/postgresql/money_test.rb +96 -0
- data/test/cases/adapters/postgresql/network_test.rb +94 -0
- data/test/cases/adapters/postgresql/numbers_test.rb +49 -0
- data/test/cases/adapters/postgresql/postgresql_adapter_test.rb +405 -0
- data/test/cases/adapters/postgresql/prepared_statements_test.rb +22 -0
- data/test/cases/adapters/postgresql/quoting_test.rb +44 -0
- data/test/cases/adapters/postgresql/range_test.rb +343 -0
- data/test/cases/adapters/postgresql/referential_integrity_test.rb +111 -0
- data/test/cases/adapters/postgresql/rename_table_test.rb +34 -0
- data/test/cases/adapters/postgresql/schema_authorization_test.rb +119 -0
- data/test/cases/adapters/postgresql/schema_test.rb +597 -0
- data/test/cases/adapters/postgresql/serial_test.rb +154 -0
- data/test/cases/adapters/postgresql/statement_pool_test.rb +41 -0
- data/test/cases/adapters/postgresql/timestamp_test.rb +90 -0
- data/test/cases/adapters/postgresql/type_lookup_test.rb +33 -0
- data/test/cases/adapters/postgresql/utils_test.rb +62 -0
- data/test/cases/adapters/postgresql/uuid_test.rb +294 -0
- data/test/cases/adapters/postgresql/xml_test.rb +54 -0
- data/test/cases/adapters/sqlite3/collation_test.rb +53 -0
- data/test/cases/adapters/sqlite3/copy_table_test.rb +98 -0
- data/test/cases/adapters/sqlite3/explain_test.rb +21 -0
- data/test/cases/adapters/sqlite3/quoting_test.rb +101 -0
- data/test/cases/adapters/sqlite3/sqlite3_adapter_test.rb +441 -0
- data/test/cases/adapters/sqlite3/sqlite3_create_folder_test.rb +24 -0
- data/test/cases/adapters/sqlite3/statement_pool_test.rb +20 -0
- data/test/cases/aggregations_test.rb +11 -1
- data/test/cases/ar_schema_test.rb +35 -50
- data/test/cases/associations/association_scope_test.rb +1 -6
- data/test/cases/associations/belongs_to_associations_test.rb +122 -10
- data/test/cases/associations/bidirectional_destroy_dependencies_test.rb +41 -0
- data/test/cases/associations/callbacks_test.rb +5 -7
- data/test/cases/associations/cascaded_eager_loading_test.rb +1 -1
- data/test/cases/associations/eager_load_nested_include_test.rb +1 -3
- data/test/cases/associations/eager_test.rb +158 -73
- data/test/cases/associations/extension_test.rb +7 -2
- data/test/cases/associations/has_and_belongs_to_many_associations_test.rb +64 -32
- data/test/cases/associations/has_many_associations_test.rb +362 -43
- data/test/cases/associations/has_many_through_associations_test.rb +108 -41
- data/test/cases/associations/has_one_associations_test.rb +105 -8
- data/test/cases/associations/has_one_through_associations_test.rb +6 -3
- data/test/cases/associations/inner_join_association_test.rb +3 -3
- data/test/cases/associations/inverse_associations_test.rb +38 -11
- data/test/cases/associations/join_model_test.rb +59 -36
- data/test/cases/associations/left_outer_join_association_test.rb +88 -0
- data/test/cases/associations/nested_through_associations_test.rb +2 -2
- data/test/cases/associations/required_test.rb +25 -5
- data/test/cases/associations_test.rb +39 -34
- data/test/cases/attribute_decorators_test.rb +9 -8
- data/test/cases/attribute_methods/read_test.rb +5 -5
- data/test/cases/attribute_methods_test.rb +97 -40
- data/test/cases/attribute_set_test.rb +64 -4
- data/test/cases/attribute_test.rb +84 -18
- data/test/cases/attributes_test.rb +151 -34
- data/test/cases/autosave_association_test.rb +149 -36
- data/test/cases/base_test.rb +290 -241
- data/test/cases/batches_test.rb +299 -22
- data/test/cases/binary_test.rb +2 -10
- data/test/cases/bind_parameter_test.rb +76 -66
- data/test/cases/cache_key_test.rb +26 -0
- data/test/cases/calculations_test.rb +167 -15
- data/test/cases/callbacks_test.rb +161 -68
- data/test/cases/coders/json_test.rb +15 -0
- data/test/cases/collection_cache_key_test.rb +115 -0
- data/test/cases/column_definition_test.rb +26 -57
- data/test/cases/comment_test.rb +145 -0
- data/test/cases/connection_adapters/adapter_leasing_test.rb +5 -3
- data/test/cases/connection_adapters/connection_handler_test.rb +128 -21
- data/test/cases/connection_adapters/connection_specification_test.rb +1 -1
- data/test/cases/connection_adapters/merge_and_resolve_default_url_config_test.rb +0 -38
- data/test/cases/connection_adapters/mysql_type_lookup_test.rb +5 -1
- data/test/cases/connection_adapters/schema_cache_test.rb +8 -3
- data/test/cases/connection_adapters/type_lookup_test.rb +15 -7
- data/test/cases/connection_management_test.rb +46 -56
- data/test/cases/connection_pool_test.rb +195 -20
- data/test/cases/connection_specification/resolver_test.rb +15 -0
- data/test/cases/counter_cache_test.rb +10 -5
- data/test/cases/custom_locking_test.rb +1 -1
- data/test/cases/database_statements_test.rb +18 -3
- data/test/cases/{invalid_date_test.rb → date_test.rb} +13 -1
- data/test/cases/date_time_precision_test.rb +107 -0
- data/test/cases/defaults_test.rb +85 -89
- data/test/cases/dirty_test.rb +30 -52
- data/test/cases/disconnected_test.rb +4 -2
- data/test/cases/enum_test.rb +178 -24
- data/test/cases/errors_test.rb +16 -0
- data/test/cases/explain_test.rb +32 -21
- data/test/cases/finder_test.rb +273 -148
- data/test/cases/fixture_set/file_test.rb +18 -0
- data/test/cases/fixtures_test.rb +112 -32
- data/test/cases/forbidden_attributes_protection_test.rb +69 -3
- data/test/cases/helper.rb +10 -16
- data/test/cases/hot_compatibility_test.rb +89 -1
- data/test/cases/inheritance_test.rb +284 -53
- data/test/cases/integration_test.rb +23 -7
- data/test/cases/invalid_connection_test.rb +4 -2
- data/test/cases/invertible_migration_test.rb +124 -32
- data/test/cases/json_serialization_test.rb +11 -2
- data/test/cases/locking_test.rb +22 -6
- data/test/cases/log_subscriber_test.rb +106 -17
- data/test/cases/migration/change_schema_test.rb +60 -114
- data/test/cases/migration/change_table_test.rb +34 -2
- data/test/cases/migration/column_attributes_test.rb +7 -23
- data/test/cases/migration/column_positioning_test.rb +8 -8
- data/test/cases/migration/columns_test.rb +17 -11
- data/test/cases/migration/command_recorder_test.rb +47 -2
- data/test/cases/migration/compatibility_test.rb +118 -0
- data/test/cases/migration/create_join_table_test.rb +21 -12
- data/test/cases/migration/foreign_key_test.rb +52 -18
- data/test/cases/migration/index_test.rb +14 -12
- data/test/cases/migration/logger_test.rb +1 -1
- data/test/cases/migration/pending_migrations_test.rb +0 -1
- data/test/cases/migration/references_foreign_key_test.rb +59 -7
- data/test/cases/migration/references_index_test.rb +4 -4
- data/test/cases/migration/references_statements_test.rb +26 -6
- data/test/cases/migration/rename_table_test.rb +25 -25
- data/test/cases/migration_test.rb +279 -81
- data/test/cases/migrator_test.rb +91 -8
- data/test/cases/mixin_test.rb +0 -2
- data/test/cases/modules_test.rb +3 -4
- data/test/cases/multiparameter_attributes_test.rb +24 -2
- data/test/cases/multiple_db_test.rb +11 -4
- data/test/cases/nested_attributes_test.rb +61 -33
- data/test/cases/persistence_test.rb +102 -10
- data/test/cases/pooled_connections_test.rb +3 -3
- data/test/cases/primary_keys_test.rb +170 -31
- data/test/cases/query_cache_test.rb +216 -96
- data/test/cases/quoting_test.rb +65 -19
- data/test/cases/readonly_test.rb +2 -1
- data/test/cases/reflection_test.rb +68 -22
- data/test/cases/relation/delegation_test.rb +3 -8
- data/test/cases/relation/merging_test.rb +10 -14
- data/test/cases/relation/mutation_test.rb +42 -24
- data/test/cases/relation/or_test.rb +92 -0
- data/test/cases/relation/predicate_builder_test.rb +4 -2
- data/test/cases/relation/record_fetch_warning_test.rb +40 -0
- data/test/cases/relation/where_chain_test.rb +23 -99
- data/test/cases/relation/where_clause_test.rb +182 -0
- data/test/cases/relation/where_test.rb +45 -23
- data/test/cases/relation_test.rb +67 -58
- data/test/cases/relations_test.rb +249 -38
- data/test/cases/result_test.rb +10 -0
- data/test/cases/sanitize_test.rb +108 -15
- data/test/cases/schema_dumper_test.rb +119 -125
- data/test/cases/schema_loading_test.rb +52 -0
- data/test/cases/scoping/default_scoping_test.rb +113 -39
- data/test/cases/scoping/named_scoping_test.rb +46 -9
- data/test/cases/scoping/relation_scoping_test.rb +47 -4
- data/test/cases/secure_token_test.rb +32 -0
- data/test/cases/serialization_test.rb +1 -1
- data/test/cases/serialized_attribute_test.rb +93 -6
- data/test/cases/statement_cache_test.rb +38 -0
- data/test/cases/store_test.rb +2 -1
- data/test/cases/suppressor_test.rb +63 -0
- data/test/cases/tasks/database_tasks_test.rb +73 -9
- data/test/cases/tasks/mysql_rake_test.rb +139 -118
- data/test/cases/tasks/postgresql_rake_test.rb +60 -6
- data/test/cases/tasks/sqlite_rake_test.rb +30 -3
- data/test/cases/test_case.rb +28 -20
- data/test/cases/test_fixtures_test.rb +36 -0
- data/test/cases/time_precision_test.rb +103 -0
- data/test/cases/timestamp_test.rb +44 -10
- data/test/cases/touch_later_test.rb +121 -0
- data/test/cases/transaction_callbacks_test.rb +128 -62
- data/test/cases/transaction_isolation_test.rb +2 -2
- data/test/cases/transactions_test.rb +61 -43
- data/test/cases/type/adapter_specific_registry_test.rb +133 -0
- data/test/cases/type/date_time_test.rb +14 -0
- data/test/cases/type/integer_test.rb +2 -96
- data/test/cases/type/string_test.rb +0 -14
- data/test/cases/type_test.rb +39 -0
- data/test/cases/types_test.rb +1 -118
- data/test/cases/unconnected_test.rb +1 -1
- data/test/cases/validations/absence_validation_test.rb +73 -0
- data/test/cases/validations/association_validation_test.rb +13 -2
- data/test/cases/validations/i18n_validation_test.rb +6 -10
- data/test/cases/validations/length_validation_test.rb +62 -30
- data/test/cases/validations/presence_validation_test.rb +36 -1
- data/test/cases/validations/uniqueness_validation_test.rb +128 -37
- data/test/cases/validations_repair_helper.rb +2 -6
- data/test/cases/validations_test.rb +36 -7
- data/test/cases/view_test.rb +102 -5
- data/test/cases/yaml_serialization_test.rb +21 -26
- data/test/config.example.yml +97 -0
- data/test/fixtures/bad_posts.yml +9 -0
- data/test/fixtures/books.yml +20 -0
- data/test/fixtures/content.yml +3 -0
- data/test/fixtures/content_positions.yml +3 -0
- data/test/fixtures/dead_parrots.yml +5 -0
- data/test/fixtures/live_parrots.yml +4 -0
- data/test/fixtures/naked/yml/parrots.yml +2 -0
- data/test/fixtures/naked/yml/trees.yml +3 -0
- data/test/fixtures/nodes.yml +29 -0
- data/test/fixtures/other_comments.yml +6 -0
- data/test/fixtures/other_dogs.yml +2 -0
- data/test/fixtures/other_posts.yml +7 -0
- data/test/fixtures/price_estimates.yml +10 -1
- data/test/fixtures/trees.yml +3 -0
- data/test/migrations/10_urban/9_add_expressions.rb +1 -1
- data/test/migrations/decimal/1_give_me_big_numbers.rb +1 -1
- data/test/migrations/magic/1_currencies_have_symbols.rb +1 -1
- data/test/migrations/missing/1000_people_have_middle_names.rb +2 -2
- data/test/migrations/missing/1_people_have_last_names.rb +2 -2
- data/test/migrations/missing/3_we_need_reminders.rb +2 -2
- data/test/migrations/missing/4_innocent_jointable.rb +2 -2
- data/test/migrations/rename/1_we_need_things.rb +2 -2
- data/test/migrations/rename/2_rename_things.rb +2 -2
- data/test/migrations/to_copy/1_people_have_hobbies.rb +1 -1
- data/test/migrations/to_copy/2_people_have_descriptions.rb +1 -1
- data/test/migrations/to_copy2/1_create_articles.rb +1 -1
- data/test/migrations/to_copy2/2_create_comments.rb +1 -1
- data/test/migrations/to_copy_with_name_collision/1_people_have_hobbies.rb +1 -1
- data/test/migrations/to_copy_with_timestamps/20090101010101_people_have_hobbies.rb +1 -1
- data/test/migrations/to_copy_with_timestamps/20090101010202_people_have_descriptions.rb +1 -1
- data/test/migrations/to_copy_with_timestamps2/20090101010101_create_articles.rb +1 -1
- data/test/migrations/to_copy_with_timestamps2/20090101010202_create_comments.rb +1 -1
- data/test/migrations/valid/1_valid_people_have_last_names.rb +1 -1
- data/test/migrations/valid/2_we_need_reminders.rb +2 -2
- data/test/migrations/valid/3_innocent_jointable.rb +2 -2
- data/test/migrations/valid_with_subdirectories/1_valid_people_have_last_names.rb +1 -1
- data/test/migrations/valid_with_subdirectories/sub/2_we_need_reminders.rb +2 -2
- data/test/migrations/valid_with_subdirectories/sub1/3_innocent_jointable.rb +2 -2
- data/test/migrations/valid_with_timestamps/20100101010101_valid_with_timestamps_people_have_last_names.rb +1 -1
- data/test/migrations/valid_with_timestamps/20100201010101_valid_with_timestamps_we_need_reminders.rb +1 -1
- data/test/migrations/valid_with_timestamps/20100301010101_valid_with_timestamps_innocent_jointable.rb +1 -1
- data/test/migrations/version_check/20131219224947_migration_version_check.rb +1 -1
- data/test/models/admin/randomly_named_c1.rb +6 -2
- data/test/models/aircraft.rb +1 -0
- data/test/models/author.rb +4 -7
- data/test/models/bird.rb +1 -1
- data/test/models/book.rb +5 -0
- data/test/models/bulb.rb +2 -1
- data/test/models/car.rb +3 -0
- data/test/models/cat.rb +10 -0
- data/test/models/chef.rb +1 -0
- data/test/models/club.rb +2 -0
- data/test/models/comment.rb +17 -5
- data/test/models/company.rb +4 -2
- data/test/models/company_in_module.rb +1 -1
- data/test/models/contact.rb +1 -1
- data/test/models/content.rb +40 -0
- data/test/models/customer.rb +8 -2
- data/test/models/developer.rb +19 -0
- data/test/models/face.rb +1 -1
- data/test/models/guitar.rb +4 -0
- data/test/models/hotel.rb +2 -0
- data/test/models/member.rb +1 -0
- data/test/models/member_detail.rb +4 -3
- data/test/models/mentor.rb +3 -0
- data/test/models/mocktail_designer.rb +2 -0
- data/test/models/node.rb +5 -0
- data/test/models/non_primary_key.rb +2 -0
- data/test/models/notification.rb +3 -0
- data/test/models/other_dog.rb +5 -0
- data/test/models/owner.rb +4 -1
- data/test/models/parrot.rb +6 -7
- data/test/models/person.rb +0 -1
- data/test/models/pet.rb +3 -0
- data/test/models/pet_treasure.rb +6 -0
- data/test/models/pirate.rb +3 -3
- data/test/models/post.rb +18 -9
- data/test/models/project.rb +9 -0
- data/test/models/randomly_named_c1.rb +1 -1
- data/test/models/recipe.rb +3 -0
- data/test/models/ship.rb +8 -2
- data/test/models/tag.rb +6 -0
- data/test/models/topic.rb +2 -8
- data/test/models/tree.rb +3 -0
- data/test/models/tuning_peg.rb +4 -0
- data/test/models/user.rb +14 -0
- data/test/models/uuid_item.rb +6 -0
- data/test/schema/mysql2_specific_schema.rb +33 -23
- data/test/schema/oracle_specific_schema.rb +1 -4
- data/test/schema/postgresql_specific_schema.rb +36 -124
- data/test/schema/schema.rb +170 -65
- data/test/schema/schema.rb.original +1057 -0
- data/test/schema/sqlite_specific_schema.rb +1 -5
- data/test/support/connection.rb +1 -0
- data/test/support/schema_dumping_helper.rb +1 -1
- data/test/support/yaml_compatibility_fixtures/rails_4_1.yml +22 -0
- data/test/support/yaml_compatibility_fixtures/rails_4_2_0.yml +182 -0
- metadata +146 -30
- data/lib/mswin32/rb19x/ibm_db.so +0 -0
- data/lib/mswin32/rb21x/i386/ibm_db.so +0 -0
- data/lib/mswin32/rb22x/i386/ibm_db.so +0 -0
- data/lib/mswin32/rb23x/i386/ibm_db.so +0 -0
- data/test/cases/associations/deprecated_counter_cache_on_has_many_through_test.rb +0 -26
- data/test/cases/attribute_methods/serialization_test.rb +0 -29
- data/test/cases/migration/change_schema_test - Copy.rb +0 -448
- data/test/cases/migration/foreign_key_test - Changed.rb +0 -325
- data/test/cases/migration/table_and_index_test.rb +0 -24
- data/test/cases/relation/where_test2.rb +0 -36
- data/test/cases/type/decimal_test.rb +0 -56
- data/test/cases/type/unsigned_integer_test.rb +0 -18
- data/test/cases/xml_serialization_test.rb +0 -457
- data/test/fixtures/naked/csv/accounts.csv +0 -1
- data/test/schema/mysql_specific_schema.rb +0 -70
data/test/models/project.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
class Project < ActiveRecord::Base
|
2
|
+
belongs_to :mentor
|
2
3
|
has_and_belongs_to_many :developers, -> { distinct.order 'developers.name desc, developers.id desc' }
|
3
4
|
has_and_belongs_to_many :readonly_developers, -> { readonly }, :class_name => "Developer"
|
4
5
|
has_and_belongs_to_many :non_unique_developers, -> { order 'developers.name desc, developers.id desc' }, :class_name => 'Developer'
|
@@ -14,6 +15,14 @@ class Project < ActiveRecord::Base
|
|
14
15
|
belongs_to :firm
|
15
16
|
has_one :lead_developer, through: :firm, inverse_of: :contracted_projects
|
16
17
|
|
18
|
+
begin
|
19
|
+
previous_value, ActiveRecord::Base.belongs_to_required_by_default =
|
20
|
+
ActiveRecord::Base.belongs_to_required_by_default, true
|
21
|
+
has_and_belongs_to_many :developers_required_by_default, class_name: "Developer"
|
22
|
+
ensure
|
23
|
+
ActiveRecord::Base.belongs_to_required_by_default = previous_value
|
24
|
+
end
|
25
|
+
|
17
26
|
attr_accessor :developers_log
|
18
27
|
after_initialize :set_developers_log
|
19
28
|
|
data/test/models/ship.rb
CHANGED
@@ -3,11 +3,12 @@ class Ship < ActiveRecord::Base
|
|
3
3
|
|
4
4
|
belongs_to :pirate
|
5
5
|
belongs_to :update_only_pirate, :class_name => 'Pirate'
|
6
|
+
belongs_to :developer, dependent: :destroy
|
6
7
|
has_many :parts, :class_name => 'ShipPart'
|
7
8
|
has_many :treasures
|
8
9
|
|
9
10
|
accepts_nested_attributes_for :parts, :allow_destroy => true
|
10
|
-
accepts_nested_attributes_for :pirate, :allow_destroy => true, :reject_if => proc
|
11
|
+
accepts_nested_attributes_for :pirate, :allow_destroy => true, :reject_if => proc(&:empty?)
|
11
12
|
accepts_nested_attributes_for :update_only_pirate, :update_only => true
|
12
13
|
|
13
14
|
validates_presence_of :name
|
@@ -15,17 +16,22 @@ class Ship < ActiveRecord::Base
|
|
15
16
|
attr_accessor :cancel_save_from_callback
|
16
17
|
before_save :cancel_save_callback_method, :if => :cancel_save_from_callback
|
17
18
|
def cancel_save_callback_method
|
18
|
-
|
19
|
+
throw(:abort)
|
19
20
|
end
|
20
21
|
end
|
21
22
|
|
22
23
|
class ShipWithoutNestedAttributes < ActiveRecord::Base
|
23
24
|
self.table_name = "ships"
|
25
|
+
has_many :prisoners, inverse_of: :ship, foreign_key: :ship_id
|
24
26
|
has_many :parts, class_name: "ShipPart", foreign_key: :ship_id
|
25
27
|
|
26
28
|
validates :name, presence: true
|
27
29
|
end
|
28
30
|
|
31
|
+
class Prisoner < ActiveRecord::Base
|
32
|
+
belongs_to :ship, autosave: true, class_name: "ShipWithoutNestedAttributes", inverse_of: :prisoners
|
33
|
+
end
|
34
|
+
|
29
35
|
class FamousShip < ActiveRecord::Base
|
30
36
|
self.table_name = 'ships'
|
31
37
|
belongs_to :famous_pirate
|
data/test/models/tag.rb
CHANGED
@@ -5,3 +5,9 @@ class Tag < ActiveRecord::Base
|
|
5
5
|
|
6
6
|
has_many :tagged_posts, :through => :taggings, :source => 'taggable', :source_type => 'Post'
|
7
7
|
end
|
8
|
+
|
9
|
+
class OrderedTag < Tag
|
10
|
+
self.table_name = "tags"
|
11
|
+
|
12
|
+
has_many :taggings, -> { order('taggings.id DESC') }, foreign_key: 'tag_id'
|
13
|
+
end
|
data/test/models/topic.rb
CHANGED
@@ -32,7 +32,7 @@ class Topic < ActiveRecord::Base
|
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
35
|
-
has_many :replies, :
|
35
|
+
has_many :replies, dependent: :destroy, foreign_key: "parent_id", autosave: true
|
36
36
|
has_many :approved_replies, -> { approved }, class_name: 'Reply', foreign_key: "parent_id", counter_cache: 'replies_count'
|
37
37
|
|
38
38
|
has_many :unique_replies, :dependent => :destroy, :foreign_key => "parent_id"
|
@@ -43,12 +43,6 @@ class Topic < ActiveRecord::Base
|
|
43
43
|
before_create :default_written_on
|
44
44
|
before_destroy :destroy_children
|
45
45
|
|
46
|
-
# Explicitly define as :date column so that returned Oracle DATE values would be typecasted to Date and not Time.
|
47
|
-
# Some tests depend on assumption that this attribute will have Date values.
|
48
|
-
if current_adapter?(:OracleEnhancedAdapter)
|
49
|
-
set_date_columns :last_read
|
50
|
-
end
|
51
|
-
|
52
46
|
def parent
|
53
47
|
Topic.find(parent_id)
|
54
48
|
end
|
@@ -86,7 +80,7 @@ class Topic < ActiveRecord::Base
|
|
86
80
|
end
|
87
81
|
|
88
82
|
def destroy_children
|
89
|
-
self.class.
|
83
|
+
self.class.where("parent_id = #{id}").delete_all
|
90
84
|
end
|
91
85
|
|
92
86
|
def set_email_address
|
data/test/models/tree.rb
ADDED
data/test/models/user.rb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'models/job'
|
2
|
+
|
3
|
+
class User < ActiveRecord::Base
|
4
|
+
has_secure_token
|
5
|
+
has_secure_token :auth_token
|
6
|
+
|
7
|
+
has_and_belongs_to_many :jobs_pool,
|
8
|
+
class_name: Job,
|
9
|
+
join_table: 'jobs_pool'
|
10
|
+
end
|
11
|
+
|
12
|
+
class UserWithNotification < User
|
13
|
+
after_create -> { Notification.create! message: "A new user has been created." }
|
14
|
+
end
|
@@ -1,28 +1,40 @@
|
|
1
1
|
ActiveRecord::Schema.define do
|
2
|
+
|
3
|
+
if ActiveRecord::Base.connection.version >= '5.6.0'
|
4
|
+
create_table :datetime_defaults, force: true do |t|
|
5
|
+
t.datetime :modified_datetime, default: -> { 'CURRENT_TIMESTAMP' }
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
2
9
|
create_table :binary_fields, force: true do |t|
|
3
10
|
t.binary :var_binary, limit: 255
|
4
11
|
t.binary :var_binary_large, limit: 4095
|
5
|
-
t.
|
6
|
-
t.
|
7
|
-
t.
|
8
|
-
t.
|
9
|
-
t.
|
10
|
-
t.text
|
11
|
-
t.
|
12
|
-
t.
|
13
|
-
end
|
12
|
+
t.tinyblob :tiny_blob
|
13
|
+
t.blob :normal_blob
|
14
|
+
t.mediumblob :medium_blob
|
15
|
+
t.longblob :long_blob
|
16
|
+
t.tinytext :tiny_text
|
17
|
+
t.text :normal_text
|
18
|
+
t.mediumtext :medium_text
|
19
|
+
t.longtext :long_text
|
14
20
|
|
15
|
-
|
21
|
+
t.index :var_binary
|
22
|
+
end
|
16
23
|
|
17
|
-
create_table :key_tests, force: true, :
|
24
|
+
create_table :key_tests, force: true, options: 'ENGINE=MyISAM' do |t|
|
18
25
|
t.string :awesome
|
19
26
|
t.string :pizza
|
20
27
|
t.string :snacks
|
28
|
+
t.index :awesome, type: :fulltext, name: 'index_key_tests_on_awesome'
|
29
|
+
t.index :pizza, using: :btree, name: 'index_key_tests_on_pizza'
|
30
|
+
t.index :snacks, name: 'index_key_tests_on_snack'
|
21
31
|
end
|
22
32
|
|
23
|
-
|
24
|
-
|
25
|
-
|
33
|
+
create_table :collation_tests, id: false, force: true do |t|
|
34
|
+
t.string :string_cs_column, limit: 1, collation: 'utf8_bin'
|
35
|
+
t.string :string_ci_column, limit: 1, collation: 'utf8_general_ci'
|
36
|
+
t.binary :binary_column, limit: 1
|
37
|
+
end
|
26
38
|
|
27
39
|
ActiveRecord::Base.connection.execute <<-SQL
|
28
40
|
DROP PROCEDURE IF EXISTS ten;
|
@@ -36,23 +48,21 @@ END
|
|
36
48
|
SQL
|
37
49
|
|
38
50
|
ActiveRecord::Base.connection.execute <<-SQL
|
39
|
-
DROP
|
51
|
+
DROP PROCEDURE IF EXISTS topics;
|
40
52
|
SQL
|
41
53
|
|
42
54
|
ActiveRecord::Base.connection.execute <<-SQL
|
43
|
-
CREATE
|
44
|
-
|
45
|
-
|
46
|
-
|
55
|
+
CREATE PROCEDURE topics(IN num INT) SQL SECURITY INVOKER
|
56
|
+
BEGIN
|
57
|
+
select * from topics limit num;
|
58
|
+
END
|
47
59
|
SQL
|
48
60
|
|
49
|
-
ActiveRecord::Base.connection.
|
50
|
-
DROP TABLE IF EXISTS enum_tests;
|
51
|
-
SQL
|
61
|
+
ActiveRecord::Base.connection.drop_table "enum_tests", if_exists: true
|
52
62
|
|
53
63
|
ActiveRecord::Base.connection.execute <<-SQL
|
54
64
|
CREATE TABLE enum_tests (
|
55
|
-
enum_column ENUM('text','blob','tiny','medium','long')
|
65
|
+
enum_column ENUM('text','blob','tiny','medium','long','unsigned','bigint')
|
56
66
|
)
|
57
67
|
SQL
|
58
68
|
end
|
@@ -32,10 +32,7 @@ create sequence test_oracle_defaults_seq minvalue 10000
|
|
32
32
|
fixed_time date default TO_DATE('2004-01-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS'),
|
33
33
|
char1 varchar2(1) default 'Y',
|
34
34
|
char2 varchar2(50) default 'a varchar field',
|
35
|
-
char3 clob default 'a text field'
|
36
|
-
positive_integer integer default 1,
|
37
|
-
negative_integer integer default -1,
|
38
|
-
decimal_number number(3,2) default 2.78
|
35
|
+
char3 clob default 'a text field'
|
39
36
|
)
|
40
37
|
SQL
|
41
38
|
execute "create sequence defaults_seq minvalue 10000"
|
@@ -1,10 +1,35 @@
|
|
1
1
|
ActiveRecord::Schema.define do
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
3
|
+
enable_extension!('uuid-ossp', ActiveRecord::Base.connection)
|
4
|
+
|
5
|
+
create_table :uuid_parents, id: :uuid, force: true do |t|
|
6
|
+
t.string :name
|
7
|
+
end
|
8
|
+
|
9
|
+
create_table :uuid_children, id: :uuid, force: true do |t|
|
10
|
+
t.string :name
|
11
|
+
t.uuid :uuid_parent_id
|
12
|
+
end
|
13
|
+
|
14
|
+
create_table :defaults, force: true do |t|
|
15
|
+
t.date :modified_date, default: -> { 'CURRENT_DATE' }
|
16
|
+
t.date :modified_date_function, default: -> { 'now()' }
|
17
|
+
t.date :fixed_date, default: '2004-01-01'
|
18
|
+
t.datetime :modified_time, default: -> { 'CURRENT_TIMESTAMP' }
|
19
|
+
t.datetime :modified_time_function, default: -> { 'now()' }
|
20
|
+
t.datetime :fixed_time, default: '2004-01-01 00:00:00.000000-00'
|
21
|
+
t.column :char1, 'char(1)', default: 'Y'
|
22
|
+
t.string :char2, limit: 50, default: 'a varchar field'
|
23
|
+
t.text :char3, default: 'a text field'
|
24
|
+
t.bigint :bigint_default, default: -> { '0::bigint' }
|
25
|
+
t.text :multiline_default, default: '--- []
|
26
|
+
|
27
|
+
'
|
28
|
+
end
|
29
|
+
|
30
|
+
%w(postgresql_times postgresql_oids postgresql_timestamp_with_zones
|
31
|
+
postgresql_partitioned_table postgresql_partitioned_table_parent).each do |table_name|
|
32
|
+
drop_table table_name, if_exists: true
|
8
33
|
end
|
9
34
|
|
10
35
|
execute 'DROP SEQUENCE IF EXISTS companies_nonstd_seq CASCADE'
|
@@ -14,110 +39,10 @@ ActiveRecord::Schema.define do
|
|
14
39
|
|
15
40
|
execute 'DROP FUNCTION IF EXISTS partitioned_insert_trigger()'
|
16
41
|
|
17
|
-
execute "DROP SCHEMA IF EXISTS schema_1 CASCADE"
|
18
|
-
|
19
42
|
%w(accounts_id_seq developers_id_seq projects_id_seq topics_id_seq customers_id_seq orders_id_seq).each do |seq_name|
|
20
43
|
execute "SELECT setval('#{seq_name}', 100)"
|
21
44
|
end
|
22
45
|
|
23
|
-
execute <<_SQL
|
24
|
-
CREATE TABLE defaults (
|
25
|
-
id serial primary key,
|
26
|
-
modified_date date default CURRENT_DATE,
|
27
|
-
modified_date_function date default now(),
|
28
|
-
fixed_date date default '2004-01-01',
|
29
|
-
modified_time timestamp default CURRENT_TIMESTAMP,
|
30
|
-
modified_time_function timestamp default now(),
|
31
|
-
fixed_time timestamp default '2004-01-01 00:00:00.000000-00',
|
32
|
-
char1 char(1) default 'Y',
|
33
|
-
char2 character varying(50) default 'a varchar field',
|
34
|
-
char3 text default 'a text field',
|
35
|
-
positive_integer integer default 1,
|
36
|
-
negative_integer integer default -1,
|
37
|
-
bigint_default bigint default 0::bigint,
|
38
|
-
decimal_number decimal(3,2) default 2.78,
|
39
|
-
multiline_default text DEFAULT '--- []
|
40
|
-
|
41
|
-
'::text
|
42
|
-
);
|
43
|
-
_SQL
|
44
|
-
|
45
|
-
execute "CREATE SCHEMA schema_1"
|
46
|
-
execute "CREATE DOMAIN schema_1.text AS text"
|
47
|
-
execute "CREATE DOMAIN schema_1.varchar AS varchar"
|
48
|
-
execute "CREATE DOMAIN schema_1.bpchar AS bpchar"
|
49
|
-
|
50
|
-
execute <<_SQL
|
51
|
-
CREATE TABLE geometrics (
|
52
|
-
id serial primary key,
|
53
|
-
a_point point,
|
54
|
-
-- a_line line, (the line type is currently not implemented in postgresql)
|
55
|
-
a_line_segment lseg,
|
56
|
-
a_box box,
|
57
|
-
a_path path,
|
58
|
-
a_polygon polygon,
|
59
|
-
a_circle circle
|
60
|
-
);
|
61
|
-
_SQL
|
62
|
-
|
63
|
-
execute <<_SQL
|
64
|
-
CREATE TABLE postgresql_arrays (
|
65
|
-
id SERIAL PRIMARY KEY,
|
66
|
-
commission_by_quarter INTEGER[],
|
67
|
-
nicknames TEXT[]
|
68
|
-
);
|
69
|
-
_SQL
|
70
|
-
|
71
|
-
execute <<_SQL
|
72
|
-
CREATE TABLE postgresql_uuids (
|
73
|
-
id SERIAL PRIMARY KEY,
|
74
|
-
guid uuid,
|
75
|
-
compact_guid uuid
|
76
|
-
);
|
77
|
-
_SQL
|
78
|
-
|
79
|
-
execute <<_SQL
|
80
|
-
CREATE TABLE postgresql_tsvectors (
|
81
|
-
id SERIAL PRIMARY KEY,
|
82
|
-
text_vector tsvector
|
83
|
-
);
|
84
|
-
_SQL
|
85
|
-
|
86
|
-
if 't' == select_value("select 'hstore'=ANY(select typname from pg_type)")
|
87
|
-
execute <<_SQL
|
88
|
-
CREATE TABLE postgresql_hstores (
|
89
|
-
id SERIAL PRIMARY KEY,
|
90
|
-
hash_store hstore default ''::hstore
|
91
|
-
);
|
92
|
-
_SQL
|
93
|
-
end
|
94
|
-
|
95
|
-
if 't' == select_value("select 'ltree'=ANY(select typname from pg_type)")
|
96
|
-
execute <<_SQL
|
97
|
-
CREATE TABLE postgresql_ltrees (
|
98
|
-
id SERIAL PRIMARY KEY,
|
99
|
-
path ltree
|
100
|
-
);
|
101
|
-
_SQL
|
102
|
-
end
|
103
|
-
|
104
|
-
if 't' == select_value("select 'citext'=ANY(select typname from pg_type)")
|
105
|
-
execute <<_SQL
|
106
|
-
CREATE TABLE postgresql_citext (
|
107
|
-
id SERIAL PRIMARY KEY,
|
108
|
-
text_citext citext default ''::citext
|
109
|
-
);
|
110
|
-
_SQL
|
111
|
-
end
|
112
|
-
|
113
|
-
execute <<_SQL
|
114
|
-
CREATE TABLE postgresql_numbers (
|
115
|
-
id SERIAL PRIMARY KEY,
|
116
|
-
single REAL,
|
117
|
-
double DOUBLE PRECISION
|
118
|
-
);
|
119
|
-
_SQL
|
120
|
-
|
121
46
|
execute <<_SQL
|
122
47
|
CREATE TABLE postgresql_times (
|
123
48
|
id SERIAL PRIMARY KEY,
|
@@ -126,15 +51,6 @@ _SQL
|
|
126
51
|
);
|
127
52
|
_SQL
|
128
53
|
|
129
|
-
execute <<_SQL
|
130
|
-
CREATE TABLE postgresql_network_addresses (
|
131
|
-
id SERIAL PRIMARY KEY,
|
132
|
-
cidr_address CIDR default '192.168.1.0/24',
|
133
|
-
inet_address INET default '192.168.1.1',
|
134
|
-
mac_address MACADDR default 'ff:ff:ff:ff:ff:ff'
|
135
|
-
);
|
136
|
-
_SQL
|
137
|
-
|
138
54
|
execute <<_SQL
|
139
55
|
CREATE TABLE postgresql_oids (
|
140
56
|
id SERIAL PRIMARY KEY,
|
@@ -180,16 +96,6 @@ _SQL
|
|
180
96
|
end
|
181
97
|
end
|
182
98
|
|
183
|
-
begin
|
184
|
-
execute <<_SQL
|
185
|
-
CREATE TABLE postgresql_xml_data_type (
|
186
|
-
id SERIAL PRIMARY KEY,
|
187
|
-
data xml
|
188
|
-
);
|
189
|
-
_SQL
|
190
|
-
rescue #This version of PostgreSQL either has no XML support or is was not compiled with XML support: skipping table
|
191
|
-
end
|
192
|
-
|
193
99
|
# This table is to verify if the :limit option is being ignored for text and binary columns
|
194
100
|
create_table :limitless_fields, force: true do |t|
|
195
101
|
t.binary :binary, limit: 100_000
|
@@ -198,5 +104,11 @@ _SQL
|
|
198
104
|
|
199
105
|
create_table :bigint_array, force: true do |t|
|
200
106
|
t.integer :big_int_data_points, limit: 8, array: true
|
107
|
+
t.decimal :decimal_array_default, array: true, default: [1.23, 3.45]
|
108
|
+
end
|
109
|
+
|
110
|
+
create_table :uuid_items, force: true, id: false do |t|
|
111
|
+
t.uuid :uuid, primary_key: true
|
112
|
+
t.string :title
|
201
113
|
end
|
202
114
|
end
|
data/test/schema/schema.rb
CHANGED
@@ -1,26 +1,4 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
1
|
ActiveRecord::Schema.define do
|
4
|
-
def except(adapter_names_to_exclude)
|
5
|
-
unless [adapter_names_to_exclude].flatten.include?(adapter_name)
|
6
|
-
yield
|
7
|
-
end
|
8
|
-
end
|
9
|
-
|
10
|
-
#put adapter specific setup here
|
11
|
-
case adapter_name
|
12
|
-
when "PostgreSQL"
|
13
|
-
enable_extension!('uuid-ossp', ActiveRecord::Base.connection)
|
14
|
-
create_table :uuid_parents, id: :uuid, force: true do |t|
|
15
|
-
t.string :name
|
16
|
-
end
|
17
|
-
create_table :uuid_children, id: :uuid, force: true do |t|
|
18
|
-
t.string :name
|
19
|
-
t.uuid :uuid_parent_id
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
|
24
2
|
# ------------------------------------------------------------------- #
|
25
3
|
# #
|
26
4
|
# Please keep these create table statements in alphabetical order #
|
@@ -52,6 +30,7 @@ ActiveRecord::Schema.define do
|
|
52
30
|
|
53
31
|
create_table :aircraft, force: true do |t|
|
54
32
|
t.string :name
|
33
|
+
t.integer :wheels_count, default: 0, null: false
|
55
34
|
end
|
56
35
|
|
57
36
|
create_table :articles, force: true do |t|
|
@@ -115,6 +94,11 @@ ActiveRecord::Schema.define do
|
|
115
94
|
t.column :status, :integer, default: 0
|
116
95
|
t.column :read_status, :integer, default: 0
|
117
96
|
t.column :nullable_status, :integer
|
97
|
+
t.column :language, :integer, default: 0
|
98
|
+
t.column :author_visibility, :integer, default: 0
|
99
|
+
t.column :illustrator_visibility, :integer, default: 0
|
100
|
+
t.column :font_size, :integer, default: 0
|
101
|
+
t.column :cover, :string, default: 'hard'
|
118
102
|
end
|
119
103
|
|
120
104
|
create_table :booleans, force: true do |t|
|
@@ -125,11 +109,11 @@ ActiveRecord::Schema.define do
|
|
125
109
|
create_table :bulbs, force: true do |t|
|
126
110
|
t.integer :car_id
|
127
111
|
t.string :name
|
128
|
-
t.boolean :frickinawesome
|
112
|
+
t.boolean :frickinawesome, default: false
|
129
113
|
t.string :color
|
130
114
|
end
|
131
115
|
|
132
|
-
create_table "
|
116
|
+
create_table "CamelCase", force: true do |t|
|
133
117
|
t.string :name
|
134
118
|
end
|
135
119
|
|
@@ -201,6 +185,7 @@ ActiveRecord::Schema.define do
|
|
201
185
|
t.string :resource_id
|
202
186
|
t.string :resource_type
|
203
187
|
t.integer :developer_id
|
188
|
+
t.datetime :deleted_at
|
204
189
|
end
|
205
190
|
|
206
191
|
create_table :companies, force: true do |t|
|
@@ -212,11 +197,19 @@ ActiveRecord::Schema.define do
|
|
212
197
|
t.integer :rating, default: 1
|
213
198
|
t.integer :account_id
|
214
199
|
t.string :description, default: ""
|
200
|
+
t.index [:firm_id, :type, :rating], name: "company_index", length: { type: 10 }, order: { rating: :desc }
|
201
|
+
t.index [:firm_id, :type], name: "company_partial_index", where: "rating > 10"
|
202
|
+
t.index :name, name: 'company_name_index', using: :btree
|
203
|
+
t.index 'lower(name)', name: "company_expression_index" if supports_expression_index?
|
204
|
+
end
|
205
|
+
|
206
|
+
create_table :content, force: true do |t|
|
207
|
+
t.string :title
|
215
208
|
end
|
216
209
|
|
217
|
-
|
218
|
-
|
219
|
-
|
210
|
+
create_table :content_positions, force: true do |t|
|
211
|
+
t.integer :content_id
|
212
|
+
end
|
220
213
|
|
221
214
|
create_table :vegetables, force: true do |t|
|
222
215
|
t.string :name
|
@@ -261,12 +254,21 @@ ActiveRecord::Schema.define do
|
|
261
254
|
|
262
255
|
create_table :developers, force: true do |t|
|
263
256
|
t.string :name
|
257
|
+
t.string :first_name
|
264
258
|
t.integer :salary, default: 70000
|
265
|
-
t.integer
|
266
|
-
t.
|
267
|
-
|
268
|
-
|
269
|
-
|
259
|
+
t.integer :firm_id
|
260
|
+
t.integer :mentor_id
|
261
|
+
if subsecond_precision_supported?
|
262
|
+
t.datetime :created_at, precision: 6
|
263
|
+
t.datetime :updated_at, precision: 6
|
264
|
+
t.datetime :created_on, precision: 6
|
265
|
+
t.datetime :updated_on, precision: 6
|
266
|
+
else
|
267
|
+
t.datetime :created_at
|
268
|
+
t.datetime :updated_at
|
269
|
+
t.datetime :created_on
|
270
|
+
t.datetime :updated_on
|
271
|
+
end
|
270
272
|
end
|
271
273
|
|
272
274
|
create_table :developers_projects, force: true, id: false do |t|
|
@@ -297,8 +299,8 @@ ActiveRecord::Schema.define do
|
|
297
299
|
create_table :edges, force: true, id: false do |t|
|
298
300
|
t.column :source_id, :integer, null: false
|
299
301
|
t.column :sink_id, :integer, null: false
|
302
|
+
t.index [:source_id, :sink_id], unique: true, name: 'unique_edge_index'
|
300
303
|
end
|
301
|
-
add_index :edges, [:source_id, :sink_id], unique: true, name: 'unique_edge_index'
|
302
304
|
|
303
305
|
create_table :engines, force: true do |t|
|
304
306
|
t.integer :car_id
|
@@ -350,6 +352,10 @@ ActiveRecord::Schema.define do
|
|
350
352
|
t.column :key, :string
|
351
353
|
end
|
352
354
|
|
355
|
+
create_table :guitars, force: true do |t|
|
356
|
+
t.string :color
|
357
|
+
end
|
358
|
+
|
353
359
|
create_table :inept_wizards, force: true do |t|
|
354
360
|
t.column :name, :string, null: false
|
355
361
|
t.column :city, :string, null: false
|
@@ -365,7 +371,11 @@ ActiveRecord::Schema.define do
|
|
365
371
|
|
366
372
|
create_table :invoices, force: true do |t|
|
367
373
|
t.integer :balance
|
368
|
-
|
374
|
+
if subsecond_precision_supported?
|
375
|
+
t.datetime :updated_at, precision: 6
|
376
|
+
else
|
377
|
+
t.datetime :updated_at
|
378
|
+
end
|
369
379
|
end
|
370
380
|
|
371
381
|
create_table :iris, force: true do |t|
|
@@ -381,6 +391,11 @@ ActiveRecord::Schema.define do
|
|
381
391
|
t.integer :ideal_reference_id
|
382
392
|
end
|
383
393
|
|
394
|
+
create_table :jobs_pool, force: true, id: false do |t|
|
395
|
+
t.references :job, null: false, index: true
|
396
|
+
t.references :user, null: false, index: true
|
397
|
+
end
|
398
|
+
|
384
399
|
create_table :keyboards, force: true, id: false do |t|
|
385
400
|
t.primary_key :key_number
|
386
401
|
t.string :name
|
@@ -400,6 +415,14 @@ ActiveRecord::Schema.define do
|
|
400
415
|
t.references :student
|
401
416
|
end
|
402
417
|
|
418
|
+
create_table :students, force: true do |t|
|
419
|
+
t.string :name
|
420
|
+
t.boolean :active
|
421
|
+
t.integer :college_id
|
422
|
+
end
|
423
|
+
|
424
|
+
add_foreign_key :lessons_students, :students, on_delete: :cascade
|
425
|
+
|
403
426
|
create_table :lint_models, force: true
|
404
427
|
|
405
428
|
create_table :line_items, force: true do |t|
|
@@ -407,6 +430,11 @@ ActiveRecord::Schema.define do
|
|
407
430
|
t.integer :amount
|
408
431
|
end
|
409
432
|
|
433
|
+
create_table :lions, force: true do |t|
|
434
|
+
t.integer :gender
|
435
|
+
t.boolean :is_vegetarian, default: false
|
436
|
+
end
|
437
|
+
|
410
438
|
create_table :lock_without_defaults, force: true do |t|
|
411
439
|
t.column :lock_version, :integer
|
412
440
|
end
|
@@ -451,6 +479,10 @@ ActiveRecord::Schema.define do
|
|
451
479
|
t.string :name
|
452
480
|
end
|
453
481
|
|
482
|
+
create_table :mentors, force: true do |t|
|
483
|
+
t.string :name
|
484
|
+
end
|
485
|
+
|
454
486
|
create_table :minivans, force: true, id: false do |t|
|
455
487
|
t.string :minivan_id
|
456
488
|
t.string :name
|
@@ -462,8 +494,8 @@ ActiveRecord::Schema.define do
|
|
462
494
|
end
|
463
495
|
|
464
496
|
create_table :mixed_case_monkeys, force: true, id: false do |t|
|
465
|
-
t.primary_key :
|
466
|
-
t.integer :
|
497
|
+
t.primary_key :monkeyID
|
498
|
+
t.integer :fleaCount
|
467
499
|
end
|
468
500
|
|
469
501
|
create_table :mixins, force: true do |t|
|
@@ -482,6 +514,10 @@ ActiveRecord::Schema.define do
|
|
482
514
|
t.string :name
|
483
515
|
end
|
484
516
|
|
517
|
+
create_table :notifications, force: true do |t|
|
518
|
+
t.string :message
|
519
|
+
end
|
520
|
+
|
485
521
|
create_table :numeric_data, force: true do |t|
|
486
522
|
t.decimal :bank_balance, precision: 10, scale: 2
|
487
523
|
t.decimal :big_bank_balance, precision: 15, scale: 2
|
@@ -492,8 +528,10 @@ ActiveRecord::Schema.define do
|
|
492
528
|
# Oracle/SQLServer supports precision up to 38
|
493
529
|
if current_adapter?(:OracleAdapter, :SQLServerAdapter)
|
494
530
|
t.decimal :atoms_in_universe, precision: 38, scale: 0
|
495
|
-
|
531
|
+
elsif current_adapter?(:IBM_DBAdapter)
|
496
532
|
t.decimal :atoms_in_universe, precision: 31, scale: 0
|
533
|
+
elsif current_adapter?(:FbAdapter)
|
534
|
+
t.decimal :atoms_in_universe, precision: 18, scale: 0
|
497
535
|
else
|
498
536
|
t.decimal :atoms_in_universe, precision: 55, scale: 0
|
499
537
|
end
|
@@ -511,7 +549,11 @@ ActiveRecord::Schema.define do
|
|
511
549
|
|
512
550
|
create_table :owners, primary_key: :owner_id, force: true do |t|
|
513
551
|
t.string :name
|
514
|
-
|
552
|
+
if subsecond_precision_supported?
|
553
|
+
t.column :updated_at, :datetime, precision: 6
|
554
|
+
else
|
555
|
+
t.column :updated_at, :datetime
|
556
|
+
end
|
515
557
|
t.column :happy_at, :datetime
|
516
558
|
t.string :essay_id
|
517
559
|
end
|
@@ -529,10 +571,18 @@ ActiveRecord::Schema.define do
|
|
529
571
|
t.column :color, :string
|
530
572
|
t.column :parrot_sti_class, :string
|
531
573
|
t.column :killer_id, :integer
|
532
|
-
t.column :
|
533
|
-
|
534
|
-
|
535
|
-
|
574
|
+
t.column :updated_count, :integer, default: 0
|
575
|
+
if subsecond_precision_supported?
|
576
|
+
t.column :created_at, :datetime, precision: 0
|
577
|
+
t.column :created_on, :datetime, precision: 0
|
578
|
+
t.column :updated_at, :datetime, precision: 0
|
579
|
+
t.column :updated_on, :datetime, precision: 0
|
580
|
+
else
|
581
|
+
t.column :created_at, :datetime
|
582
|
+
t.column :created_on, :datetime
|
583
|
+
t.column :updated_at, :datetime
|
584
|
+
t.column :updated_on, :datetime
|
585
|
+
end
|
536
586
|
end
|
537
587
|
|
538
588
|
create_table :parrots_pirates, id: false, force: true do |t|
|
@@ -575,15 +625,30 @@ ActiveRecord::Schema.define do
|
|
575
625
|
create_table :pets, primary_key: :pet_id, force: true do |t|
|
576
626
|
t.string :name
|
577
627
|
t.integer :owner_id, :integer
|
578
|
-
|
628
|
+
if subsecond_precision_supported?
|
629
|
+
t.timestamps null: false, precision: 6
|
630
|
+
else
|
631
|
+
t.timestamps null: false
|
632
|
+
end
|
633
|
+
end
|
634
|
+
|
635
|
+
create_table :pets_treasures, force: true do |t|
|
636
|
+
t.column :treasure_id, :integer
|
637
|
+
t.column :pet_id, :integer
|
638
|
+
t.column :rainbow_color, :string
|
579
639
|
end
|
580
640
|
|
581
641
|
create_table :pirates, force: true do |t|
|
582
642
|
t.column :catchphrase, :string
|
583
643
|
t.column :parrot_id, :integer
|
584
644
|
t.integer :non_validated_parrot_id
|
585
|
-
|
586
|
-
|
645
|
+
if subsecond_precision_supported?
|
646
|
+
t.column :created_on, :datetime, precision: 6
|
647
|
+
t.column :updated_on, :datetime, precision: 6
|
648
|
+
else
|
649
|
+
t.column :created_on, :datetime
|
650
|
+
t.column :updated_on, :datetime
|
651
|
+
end
|
587
652
|
end
|
588
653
|
|
589
654
|
create_table :posts, force: true do |t|
|
@@ -635,9 +700,20 @@ ActiveRecord::Schema.define do
|
|
635
700
|
t.string :name
|
636
701
|
t.string :type
|
637
702
|
t.integer :firm_id
|
703
|
+
t.integer :mentor_id
|
704
|
+
end
|
705
|
+
|
706
|
+
create_table :randomly_named_table1, force: true do |t|
|
707
|
+
t.string :some_attribute
|
708
|
+
t.integer :another_attribute
|
638
709
|
end
|
639
710
|
|
640
|
-
create_table :
|
711
|
+
create_table :randomly_named_table2, force: true do |t|
|
712
|
+
t.string :some_attribute
|
713
|
+
t.integer :another_attribute
|
714
|
+
end
|
715
|
+
|
716
|
+
create_table :randomly_named_table3, force: true do |t|
|
641
717
|
t.string :some_attribute
|
642
718
|
t.integer :another_attribute
|
643
719
|
end
|
@@ -671,6 +747,7 @@ ActiveRecord::Schema.define do
|
|
671
747
|
create_table :ships, force: true do |t|
|
672
748
|
t.string :name
|
673
749
|
t.integer :pirate_id
|
750
|
+
t.belongs_to :developer
|
674
751
|
t.integer :update_only_pirate_id
|
675
752
|
# Conventionally named column for counter_cache
|
676
753
|
t.integer :treasures_count, default: 0
|
@@ -683,6 +760,15 @@ ActiveRecord::Schema.define do
|
|
683
760
|
create_table :ship_parts, force: true do |t|
|
684
761
|
t.string :name
|
685
762
|
t.integer :ship_id
|
763
|
+
if subsecond_precision_supported?
|
764
|
+
t.datetime :updated_at, precision: 6
|
765
|
+
else
|
766
|
+
t.datetime :updated_at
|
767
|
+
end
|
768
|
+
end
|
769
|
+
|
770
|
+
create_table :prisoners, force: true do |t|
|
771
|
+
t.belongs_to :ship
|
686
772
|
end
|
687
773
|
|
688
774
|
create_table :shop_accounts, force: true do |t|
|
@@ -708,18 +794,12 @@ ActiveRecord::Schema.define do
|
|
708
794
|
t.integer :lock_version, null: false, default: 0
|
709
795
|
end
|
710
796
|
|
711
|
-
create_table :students, force: true do |t|
|
712
|
-
t.string :name
|
713
|
-
t.boolean :active
|
714
|
-
t.integer :college_id
|
715
|
-
end
|
716
|
-
|
717
797
|
create_table :subscribers, force: true, id: false do |t|
|
718
798
|
t.string :nick, null: false
|
719
799
|
t.string :name
|
720
800
|
t.column :books_count, :integer, null: false, default: 0
|
801
|
+
t.index :nick, unique: true
|
721
802
|
end
|
722
|
-
add_index :subscribers, :nick, unique: true
|
723
803
|
|
724
804
|
create_table :subscriptions, force: true do |t|
|
725
805
|
t.string :subscriber_id
|
@@ -748,7 +828,7 @@ ActiveRecord::Schema.define do
|
|
748
828
|
t.string :title, limit: 250
|
749
829
|
t.string :author_name
|
750
830
|
t.string :author_email_address
|
751
|
-
if
|
831
|
+
if subsecond_precision_supported?
|
752
832
|
t.datetime :written_on, precision: 6
|
753
833
|
else
|
754
834
|
t.datetime :written_on
|
@@ -771,7 +851,11 @@ ActiveRecord::Schema.define do
|
|
771
851
|
t.string :parent_title
|
772
852
|
t.string :type
|
773
853
|
t.string :group
|
774
|
-
|
854
|
+
if subsecond_precision_supported?
|
855
|
+
t.timestamps null: true, precision: 6
|
856
|
+
else
|
857
|
+
t.timestamps null: true
|
858
|
+
end
|
775
859
|
end
|
776
860
|
|
777
861
|
create_table :toys, primary_key: :toy_id, force: true do |t|
|
@@ -796,6 +880,11 @@ ActiveRecord::Schema.define do
|
|
796
880
|
t.belongs_to :ship
|
797
881
|
end
|
798
882
|
|
883
|
+
create_table :tuning_pegs, force: true do |t|
|
884
|
+
t.integer :guitar_id
|
885
|
+
t.float :pitch
|
886
|
+
end
|
887
|
+
|
799
888
|
create_table :tyres, force: true do |t|
|
800
889
|
t.integer :car_id
|
801
890
|
end
|
@@ -857,7 +946,7 @@ ActiveRecord::Schema.define do
|
|
857
946
|
t.string :treaty_id
|
858
947
|
t.string :name
|
859
948
|
end
|
860
|
-
create_table :countries_treaties, force: true,
|
949
|
+
create_table :countries_treaties, force: true, primary_key: [:country_id, :treaty_id] do |t|
|
861
950
|
t.string :country_id, null: false
|
862
951
|
t.string :treaty_id, null: false
|
863
952
|
end
|
@@ -874,15 +963,17 @@ ActiveRecord::Schema.define do
|
|
874
963
|
t.string :name
|
875
964
|
end
|
876
965
|
create_table :weirds, force: true do |t|
|
877
|
-
|
878
|
-
|
879
|
-
|
880
|
-
|
881
|
-
t.string 'test1'
|
882
|
-
t.string 'test2'
|
883
|
-
t.string 'test3'
|
966
|
+
t.string 'a$b'
|
967
|
+
t.string 'なまえ'
|
968
|
+
t.string 'from'
|
884
969
|
end
|
885
970
|
|
971
|
+
create_table :nodes, force: true do |t|
|
972
|
+
t.integer :tree_id
|
973
|
+
t.integer :parent_id
|
974
|
+
t.string :name
|
975
|
+
t.datetime :updated_at
|
976
|
+
end
|
886
977
|
create_table :trees, force: true do |t|
|
887
978
|
t.string :name
|
888
979
|
t.datetime :updated_at
|
@@ -904,11 +995,15 @@ ActiveRecord::Schema.define do
|
|
904
995
|
t.string :employable_list_type
|
905
996
|
t.integer :employable_list_id
|
906
997
|
end
|
998
|
+
create_table :recipes, force: true do |t|
|
999
|
+
t.integer :chef_id
|
1000
|
+
t.integer :hotel_id
|
1001
|
+
end
|
907
1002
|
|
908
1003
|
create_table :records, force: true do |t|
|
909
1004
|
end
|
910
1005
|
|
911
|
-
|
1006
|
+
if supports_foreign_keys?
|
912
1007
|
# fk_test_has_fk should be before fk_test_has_pk
|
913
1008
|
create_table :fk_test_has_fk, force: true do |t|
|
914
1009
|
t.integer :fk_id, null: false
|
@@ -918,7 +1013,6 @@ ActiveRecord::Schema.define do
|
|
918
1013
|
end
|
919
1014
|
|
920
1015
|
add_foreign_key :fk_test_has_fk, :fk_test_has_pk, column: "fk_id", name: "fk_name", primary_key: "pk_id"
|
921
|
-
add_foreign_key :lessons_students, :students
|
922
1016
|
end
|
923
1017
|
|
924
1018
|
create_table :overloaded_types, force: true do |t|
|
@@ -928,9 +1022,18 @@ ActiveRecord::Schema.define do
|
|
928
1022
|
t.string :string_with_default, default: 'the original default'
|
929
1023
|
end
|
930
1024
|
|
1025
|
+
create_table :users, force: true do |t|
|
1026
|
+
t.string :token
|
1027
|
+
t.string :auth_token
|
1028
|
+
end
|
1029
|
+
|
931
1030
|
create_table :test_with_keyword_column_name, force: true do |t|
|
932
1031
|
t.string :desc
|
933
1032
|
end
|
1033
|
+
|
1034
|
+
create_table :non_primary_keys, force: true, id: false do |t|
|
1035
|
+
t.integer :id
|
1036
|
+
end
|
934
1037
|
end
|
935
1038
|
|
936
1039
|
Course.connection.create_table :courses, force: true do |t|
|
@@ -950,3 +1053,5 @@ Professor.connection.create_table :courses_professors, id: false, force: true do
|
|
950
1053
|
t.references :course
|
951
1054
|
t.references :professor
|
952
1055
|
end
|
1056
|
+
|
1057
|
+
OtherDog.connection.create_table :dogs, force: true
|