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.
- checksums.yaml +4 -4
- data/CHANGES +4 -0
- data/MANIFEST +14 -14
- data/README +225 -225
- data/ext/Makefile.nt32 +181 -181
- data/ext/Makefile.nt32.191 +212 -212
- data/ext/OLD/extconf.rb +264 -0
- data/ext/{extconf_MacOS.rb → OLD/extconf_MacOS.rb} +269 -269
- data/ext/extconf.rb +291 -264
- data/ext/ibm_db.c +2 -2
- data/ext/ruby_ibm_db.h +241 -241
- data/ext/ruby_ibm_db_cli.h +500 -500
- data/init.rb +41 -41
- data/lib/IBM_DB.rb +27 -27
- data/lib/active_record/connection_adapters/ibm_db_adapter.rb +4 -4
- data/lib/active_record/connection_adapters/ibmdb_adapter.rb +1 -1
- data/lib/active_record/vendor/db2-i5-zOS.yaml +328 -328
- data/lib/mswin32/ibm_db.rb +115 -115
- data/test/active_record/connection_adapters/fake_adapter.rb +46 -0
- data/test/assets/example.log +1 -0
- data/test/assets/flowers.jpg +0 -0
- data/test/assets/test.txt +1 -0
- data/test/cases/adapter_test.rb +261 -207
- data/test/cases/aggregations_test.rb +158 -0
- data/test/cases/ar_schema_test.rb +161 -0
- data/test/cases/associations/association_scope_test.rb +21 -0
- data/test/cases/associations/belongs_to_associations_test.rb +1029 -711
- data/test/cases/associations/callbacks_test.rb +192 -0
- data/test/cases/associations/cascaded_eager_loading_test.rb +188 -181
- data/test/cases/associations/deprecated_counter_cache_on_has_many_through_test.rb +26 -0
- data/test/cases/associations/eager_load_includes_full_sti_class_test.rb +36 -0
- data/test/cases/associations/eager_load_nested_include_test.rb +128 -0
- data/test/cases/associations/eager_singularization_test.rb +148 -0
- data/test/cases/associations/eager_test.rb +1411 -0
- data/test/cases/associations/extension_test.rb +82 -0
- data/test/cases/associations/has_and_belongs_to_many_associations_test.rb +932 -851
- data/test/cases/associations/has_many_associations_test.rb +2162 -0
- data/test/cases/associations/has_many_through_associations_test.rb +1204 -0
- data/test/cases/associations/has_one_associations_test.rb +610 -0
- data/test/cases/associations/has_one_through_associations_test.rb +380 -0
- data/test/cases/associations/inner_join_association_test.rb +139 -0
- data/test/cases/associations/inverse_associations_test.rb +693 -0
- data/test/cases/associations/join_model_test.rb +754 -743
- data/test/cases/associations/nested_through_associations_test.rb +579 -0
- data/test/cases/associations/required_test.rb +82 -0
- data/test/cases/associations_test.rb +380 -0
- data/test/cases/attribute_decorators_test.rb +125 -0
- data/test/cases/attribute_methods/read_test.rb +60 -0
- data/test/cases/attribute_methods/serialization_test.rb +29 -0
- data/test/cases/attribute_methods_test.rb +952 -822
- data/test/cases/attribute_set_test.rb +200 -0
- data/test/cases/attribute_test.rb +180 -0
- data/test/cases/attributes_test.rb +136 -0
- data/test/cases/autosave_association_test.rb +1595 -0
- data/test/cases/base_test.rb +1638 -2133
- data/test/cases/batches_test.rb +212 -0
- data/test/cases/binary_test.rb +52 -0
- data/test/cases/bind_parameter_test.rb +100 -0
- data/test/cases/calculations_test.rb +646 -482
- data/test/cases/callbacks_test.rb +543 -0
- data/test/cases/clone_test.rb +40 -0
- data/test/cases/coders/yaml_column_test.rb +63 -0
- data/test/cases/column_alias_test.rb +17 -0
- data/test/cases/column_definition_test.rb +123 -0
- data/test/cases/connection_adapters/adapter_leasing_test.rb +54 -0
- data/test/cases/connection_adapters/connection_handler_test.rb +53 -0
- data/test/cases/connection_adapters/connection_specification_test.rb +12 -0
- data/test/cases/connection_adapters/merge_and_resolve_default_url_config_test.rb +293 -0
- data/test/cases/connection_adapters/mysql_type_lookup_test.rb +65 -0
- data/test/cases/connection_adapters/quoting_test.rb +13 -0
- data/test/cases/connection_adapters/schema_cache_test.rb +56 -0
- data/test/cases/connection_adapters/type_lookup_test.rb +110 -0
- data/test/cases/connection_management_test.rb +122 -0
- data/test/cases/connection_pool_test.rb +346 -0
- data/test/cases/connection_specification/resolver_test.rb +116 -0
- data/test/cases/core_test.rb +112 -0
- data/test/cases/counter_cache_test.rb +209 -0
- data/test/cases/custom_locking_test.rb +17 -0
- data/test/cases/database_statements_test.rb +19 -0
- data/test/cases/date_time_test.rb +61 -0
- data/test/cases/defaults_test.rb +223 -0
- data/test/cases/dirty_test.rb +775 -0
- data/test/cases/disconnected_test.rb +28 -0
- data/test/cases/dup_test.rb +157 -0
- data/test/cases/enum_test.rb +290 -0
- data/test/cases/explain_subscriber_test.rb +64 -0
- data/test/cases/explain_test.rb +76 -0
- data/test/cases/finder_respond_to_test.rb +60 -0
- data/test/cases/finder_test.rb +1166 -0
- data/test/cases/fixture_set/file_test.rb +138 -0
- data/test/cases/fixtures_test.rb +897 -0
- data/test/cases/forbidden_attributes_protection_test.rb +99 -0
- data/test/cases/habtm_destroy_order_test.rb +61 -0
- data/test/cases/helper.rb +210 -0
- data/test/cases/hot_compatibility_test.rb +54 -0
- data/test/cases/i18n_test.rb +45 -0
- data/test/cases/inheritance_test.rb +375 -0
- data/test/cases/integration_test.rb +139 -0
- data/test/cases/invalid_connection_test.rb +22 -0
- data/test/cases/invalid_date_test.rb +32 -0
- data/test/cases/invertible_migration_test.rb +295 -0
- data/test/cases/json_serialization_test.rb +302 -0
- data/test/cases/locking_test.rb +477 -0
- data/test/cases/log_subscriber_test.rb +136 -0
- data/test/cases/migration/change_schema_test - Copy.rb +448 -0
- data/test/cases/migration/change_schema_test.rb +472 -0
- data/test/cases/migration/change_table_test.rb +224 -0
- data/test/cases/migration/column_attributes_test.rb +192 -0
- data/test/cases/migration/column_positioning_test.rb +56 -0
- data/test/cases/migration/columns_test.rb +304 -0
- data/test/cases/migration/command_recorder_test.rb +305 -0
- data/test/cases/migration/create_join_table_test.rb +148 -0
- data/test/cases/migration/foreign_key_test - Changed.rb +325 -0
- data/test/cases/migration/foreign_key_test.rb +360 -0
- data/test/cases/migration/helper.rb +39 -0
- data/test/cases/migration/index_test.rb +216 -0
- data/test/cases/migration/logger_test.rb +36 -0
- data/test/cases/migration/pending_migrations_test.rb +53 -0
- data/test/cases/migration/references_foreign_key_test.rb +214 -0
- data/test/cases/migration/references_index_test.rb +101 -0
- data/test/cases/migration/references_statements_test.rb +116 -0
- data/test/cases/migration/rename_table_test.rb +93 -0
- data/test/cases/migration/table_and_index_test.rb +24 -0
- data/test/cases/migration_test.rb +959 -2408
- data/test/cases/migrator_test.rb +388 -0
- data/test/cases/mixin_test.rb +70 -0
- data/test/cases/modules_test.rb +173 -0
- data/test/cases/multiparameter_attributes_test.rb +350 -0
- data/test/cases/multiple_db_test.rb +115 -0
- data/test/cases/nested_attributes_test.rb +1057 -0
- data/test/cases/nested_attributes_with_callbacks_test.rb +144 -0
- data/test/cases/persistence_test.rb +909 -642
- data/test/cases/pooled_connections_test.rb +81 -0
- data/test/cases/primary_keys_test.rb +237 -0
- data/test/cases/query_cache_test.rb +326 -257
- data/test/cases/quoting_test.rb +156 -0
- data/test/cases/readonly_test.rb +118 -0
- data/test/cases/reaper_test.rb +85 -0
- data/test/cases/reflection_test.rb +454 -0
- data/test/cases/relation/delegation_test.rb +68 -0
- data/test/cases/relation/merging_test.rb +161 -0
- data/test/cases/relation/mutation_test.rb +165 -0
- data/test/cases/relation/predicate_builder_test.rb +14 -0
- data/test/cases/relation/where_chain_test.rb +181 -0
- data/test/cases/relation/where_test.rb +300 -0
- data/test/cases/relation/where_test2.rb +36 -0
- data/test/cases/relation_test.rb +297 -0
- data/test/cases/relations_test.rb +1815 -1182
- data/test/cases/reload_models_test.rb +22 -0
- data/test/cases/result_test.rb +80 -0
- data/test/cases/sanitize_test.rb +83 -0
- data/test/cases/schema_dumper_test.rb +463 -256
- data/test/cases/scoping/default_scoping_test.rb +454 -0
- data/test/cases/scoping/named_scoping_test.rb +524 -0
- data/test/cases/scoping/relation_scoping_test.rb +357 -0
- data/test/cases/serialization_test.rb +104 -0
- data/test/cases/serialized_attribute_test.rb +277 -0
- data/test/cases/statement_cache_test.rb +98 -0
- data/test/cases/store_test.rb +194 -0
- data/test/cases/tasks/database_tasks_test.rb +396 -0
- data/test/cases/tasks/mysql_rake_test.rb +311 -0
- data/test/cases/tasks/postgresql_rake_test.rb +245 -0
- data/test/cases/tasks/sqlite_rake_test.rb +193 -0
- data/test/cases/test_case.rb +123 -0
- data/test/cases/timestamp_test.rb +468 -0
- data/test/cases/transaction_callbacks_test.rb +452 -300
- data/test/cases/transaction_isolation_test.rb +106 -0
- data/test/cases/transactions_test.rb +817 -0
- data/test/cases/type/decimal_test.rb +51 -0
- data/test/cases/type/integer_test.rb +121 -0
- data/test/cases/type/string_test.rb +36 -0
- data/test/cases/type/type_map_test.rb +177 -0
- data/test/cases/type/unsigned_integer_test.rb +18 -0
- data/test/cases/types_test.rb +141 -0
- data/test/cases/unconnected_test.rb +33 -0
- data/test/cases/validations/association_validation_test.rb +86 -0
- data/test/cases/validations/i18n_generate_message_validation_test.rb +84 -0
- data/test/cases/validations/i18n_validation_test.rb +90 -0
- data/test/cases/validations/length_validation_test.rb +47 -0
- data/test/cases/validations/presence_validation_test.rb +68 -0
- data/test/cases/validations/uniqueness_validation_test.rb +434 -299
- data/test/cases/validations_repair_helper.rb +23 -0
- data/test/cases/validations_test.rb +165 -0
- data/test/cases/view_test.rb +113 -0
- data/test/cases/xml_serialization_test.rb +457 -408
- data/test/cases/yaml_serialization_test.rb +86 -0
- data/test/config.rb +5 -0
- data/test/config.yml +154 -154
- data/test/connections/native_ibm_db/connection.rb +43 -43
- data/test/fixtures/accounts.yml +29 -0
- data/test/fixtures/admin/accounts.yml +2 -0
- data/test/fixtures/admin/randomly_named_a9.yml +7 -0
- data/test/fixtures/admin/randomly_named_b0.yml +7 -0
- data/test/fixtures/admin/users.yml +10 -0
- data/test/fixtures/all/admin +1 -0
- data/test/fixtures/all/developers.yml +0 -0
- data/test/fixtures/all/people.yml +0 -0
- data/test/fixtures/all/tasks.yml +0 -0
- data/test/fixtures/author_addresses.yml +18 -0
- data/test/fixtures/author_favorites.yml +4 -0
- data/test/fixtures/authors.yml +23 -0
- data/test/fixtures/binaries.yml +133 -0
- data/test/fixtures/books.yml +11 -0
- data/test/fixtures/bulbs.yml +5 -0
- data/test/fixtures/cars.yml +9 -0
- data/test/fixtures/categories.yml +19 -0
- data/test/fixtures/categories/special_categories.yml +9 -0
- data/test/fixtures/categories/subsubdir/arbitrary_filename.yml +4 -0
- data/test/fixtures/categories_ordered.yml +7 -0
- data/test/fixtures/categories_posts.yml +31 -0
- data/test/fixtures/categorizations.yml +23 -0
- data/test/fixtures/clubs.yml +8 -0
- data/test/fixtures/collections.yml +3 -0
- data/test/fixtures/colleges.yml +3 -0
- data/test/fixtures/comments.yml +65 -0
- data/test/fixtures/companies.yml +67 -0
- data/test/fixtures/computers.yml +10 -0
- data/test/fixtures/courses.yml +8 -0
- data/test/fixtures/customers.yml +26 -0
- data/test/fixtures/dashboards.yml +6 -0
- data/test/fixtures/developers.yml +22 -0
- data/test/fixtures/developers_projects.yml +17 -0
- data/test/fixtures/dog_lovers.yml +7 -0
- data/test/fixtures/dogs.yml +4 -0
- data/test/fixtures/doubloons.yml +3 -0
- data/test/fixtures/edges.yml +5 -0
- data/test/fixtures/entrants.yml +14 -0
- data/test/fixtures/essays.yml +6 -0
- data/test/fixtures/faces.yml +11 -0
- data/test/fixtures/fk_test_has_fk.yml +3 -0
- data/test/fixtures/fk_test_has_pk.yml +2 -0
- data/test/fixtures/friendships.yml +4 -0
- data/test/fixtures/funny_jokes.yml +10 -0
- data/test/fixtures/interests.yml +33 -0
- data/test/fixtures/items.yml +3 -0
- data/test/fixtures/jobs.yml +7 -0
- data/test/fixtures/legacy_things.yml +3 -0
- data/test/fixtures/mateys.yml +4 -0
- data/test/fixtures/member_details.yml +8 -0
- data/test/fixtures/member_types.yml +6 -0
- data/test/fixtures/members.yml +11 -0
- data/test/fixtures/memberships.yml +34 -0
- data/test/fixtures/men.yml +5 -0
- data/test/fixtures/minimalistics.yml +2 -0
- data/test/fixtures/minivans.yml +5 -0
- data/test/fixtures/mixed_case_monkeys.yml +6 -0
- data/test/fixtures/mixins.yml +29 -0
- data/test/fixtures/movies.yml +7 -0
- data/test/fixtures/naked/csv/accounts.csv +1 -0
- data/test/fixtures/naked/yml/accounts.yml +1 -0
- data/test/fixtures/naked/yml/companies.yml +1 -0
- data/test/fixtures/naked/yml/courses.yml +1 -0
- data/test/fixtures/organizations.yml +5 -0
- data/test/fixtures/other_topics.yml +42 -0
- data/test/fixtures/owners.yml +9 -0
- data/test/fixtures/parrots.yml +27 -0
- data/test/fixtures/parrots_pirates.yml +7 -0
- data/test/fixtures/people.yml +24 -0
- data/test/fixtures/peoples_treasures.yml +3 -0
- data/test/fixtures/pets.yml +19 -0
- data/test/fixtures/pirates.yml +12 -0
- data/test/fixtures/posts.yml +80 -0
- data/test/fixtures/price_estimates.yml +7 -0
- data/test/fixtures/products.yml +4 -0
- data/test/fixtures/projects.yml +7 -0
- data/test/fixtures/randomly_named_a9.yml +7 -0
- data/test/fixtures/ratings.yml +14 -0
- data/test/fixtures/readers.yml +11 -0
- data/test/fixtures/references.yml +17 -0
- data/test/fixtures/reserved_words/distinct.yml +5 -0
- data/test/fixtures/reserved_words/distinct_select.yml +11 -0
- data/test/fixtures/reserved_words/group.yml +14 -0
- data/test/fixtures/reserved_words/select.yml +8 -0
- data/test/fixtures/reserved_words/values.yml +7 -0
- data/test/fixtures/ships.yml +6 -0
- data/test/fixtures/speedometers.yml +8 -0
- data/test/fixtures/sponsors.yml +12 -0
- data/test/fixtures/string_key_objects.yml +7 -0
- data/test/fixtures/subscribers.yml +11 -0
- data/test/fixtures/subscriptions.yml +12 -0
- data/test/fixtures/taggings.yml +78 -0
- data/test/fixtures/tags.yml +11 -0
- data/test/fixtures/tasks.yml +7 -0
- data/test/fixtures/teapots.yml +3 -0
- data/test/fixtures/to_be_linked/accounts.yml +2 -0
- data/test/fixtures/to_be_linked/users.yml +10 -0
- data/test/fixtures/topics.yml +49 -0
- data/test/fixtures/toys.yml +14 -0
- data/test/fixtures/traffic_lights.yml +10 -0
- data/test/fixtures/treasures.yml +10 -0
- data/test/fixtures/uuid_children.yml +3 -0
- data/test/fixtures/uuid_parents.yml +2 -0
- data/test/fixtures/variants.yml +4 -0
- data/test/fixtures/vegetables.yml +20 -0
- data/test/fixtures/vertices.yml +4 -0
- data/test/fixtures/warehouse_things.yml +3 -0
- data/test/fixtures/zines.yml +5 -0
- data/test/ibm_db_test.rb +24 -24
- data/test/migrations/10_urban/9_add_expressions.rb +11 -0
- data/test/migrations/decimal/1_give_me_big_numbers.rb +15 -0
- data/test/migrations/magic/1_currencies_have_symbols.rb +12 -0
- data/test/migrations/missing/1000_people_have_middle_names.rb +9 -0
- data/test/migrations/missing/1_people_have_last_names.rb +9 -0
- data/test/migrations/missing/3_we_need_reminders.rb +12 -0
- data/test/migrations/missing/4_innocent_jointable.rb +12 -0
- data/test/migrations/rename/1_we_need_things.rb +11 -0
- data/test/migrations/rename/2_rename_things.rb +9 -0
- data/test/migrations/to_copy/1_people_have_hobbies.rb +9 -0
- data/test/migrations/to_copy/2_people_have_descriptions.rb +9 -0
- data/test/migrations/to_copy2/1_create_articles.rb +7 -0
- data/test/migrations/to_copy2/2_create_comments.rb +7 -0
- data/test/migrations/to_copy_with_name_collision/1_people_have_hobbies.rb +9 -0
- data/test/migrations/to_copy_with_timestamps/20090101010101_people_have_hobbies.rb +9 -0
- data/test/migrations/to_copy_with_timestamps/20090101010202_people_have_descriptions.rb +9 -0
- data/test/migrations/to_copy_with_timestamps2/20090101010101_create_articles.rb +7 -0
- data/test/migrations/to_copy_with_timestamps2/20090101010202_create_comments.rb +7 -0
- data/test/migrations/valid/1_valid_people_have_last_names.rb +9 -0
- data/test/migrations/valid/2_we_need_reminders.rb +12 -0
- data/test/migrations/valid/3_innocent_jointable.rb +12 -0
- data/test/migrations/valid_with_subdirectories/1_valid_people_have_last_names.rb +9 -0
- data/test/migrations/valid_with_subdirectories/sub/2_we_need_reminders.rb +12 -0
- data/test/migrations/valid_with_subdirectories/sub1/3_innocent_jointable.rb +12 -0
- data/test/migrations/valid_with_timestamps/20100101010101_valid_with_timestamps_people_have_last_names.rb +9 -0
- data/test/migrations/valid_with_timestamps/20100201010101_valid_with_timestamps_we_need_reminders.rb +12 -0
- data/test/migrations/valid_with_timestamps/20100301010101_valid_with_timestamps_innocent_jointable.rb +12 -0
- data/test/migrations/version_check/20131219224947_migration_version_check.rb +8 -0
- data/test/models/admin.rb +5 -0
- data/test/models/admin/account.rb +3 -0
- data/test/models/admin/randomly_named_c1.rb +3 -0
- data/test/models/admin/user.rb +40 -0
- data/test/models/aircraft.rb +4 -0
- data/test/models/arunit2_model.rb +3 -0
- data/test/models/author.rb +212 -0
- data/test/models/auto_id.rb +4 -0
- data/test/models/autoloadable/extra_firm.rb +2 -0
- data/test/models/binary.rb +2 -0
- data/test/models/bird.rb +12 -0
- data/test/models/book.rb +18 -0
- data/test/models/boolean.rb +2 -0
- data/test/models/bulb.rb +51 -0
- data/test/models/cake_designer.rb +3 -0
- data/test/models/car.rb +26 -0
- data/test/models/carrier.rb +2 -0
- data/test/models/categorization.rb +19 -0
- data/test/models/category.rb +35 -0
- data/test/models/chef.rb +3 -0
- data/test/models/citation.rb +3 -0
- data/test/models/club.rb +23 -0
- data/test/models/college.rb +10 -0
- data/test/models/column.rb +3 -0
- data/test/models/column_name.rb +3 -0
- data/test/models/comment.rb +64 -0
- data/test/models/company.rb +225 -0
- data/test/models/company_in_module.rb +98 -0
- data/test/models/computer.rb +3 -0
- data/test/models/contact.rb +41 -0
- data/test/models/contract.rb +20 -0
- data/test/models/country.rb +7 -0
- data/test/models/course.rb +6 -0
- data/test/models/customer.rb +77 -0
- data/test/models/customer_carrier.rb +14 -0
- data/test/models/dashboard.rb +3 -0
- data/test/models/default.rb +2 -0
- data/test/models/department.rb +4 -0
- data/test/models/developer.rb +252 -0
- data/test/models/dog.rb +5 -0
- data/test/models/dog_lover.rb +5 -0
- data/test/models/doubloon.rb +12 -0
- data/test/models/drink_designer.rb +3 -0
- data/test/models/edge.rb +5 -0
- data/test/models/electron.rb +5 -0
- data/test/models/engine.rb +4 -0
- data/test/models/entrant.rb +3 -0
- data/test/models/essay.rb +5 -0
- data/test/models/event.rb +3 -0
- data/test/models/eye.rb +37 -0
- data/test/models/face.rb +9 -0
- data/test/models/friendship.rb +6 -0
- data/test/models/guid.rb +2 -0
- data/test/models/hotel.rb +6 -0
- data/test/models/image.rb +3 -0
- data/test/models/interest.rb +5 -0
- data/test/models/invoice.rb +4 -0
- data/test/models/item.rb +7 -0
- data/test/models/job.rb +7 -0
- data/test/models/joke.rb +7 -0
- data/test/models/keyboard.rb +3 -0
- data/test/models/legacy_thing.rb +3 -0
- data/test/models/lesson.rb +11 -0
- data/test/models/line_item.rb +3 -0
- data/test/models/liquid.rb +4 -0
- data/test/models/man.rb +11 -0
- data/test/models/matey.rb +4 -0
- data/test/models/member.rb +41 -0
- data/test/models/member_detail.rb +7 -0
- data/test/models/member_type.rb +3 -0
- data/test/models/membership.rb +35 -0
- data/test/models/minimalistic.rb +2 -0
- data/test/models/minivan.rb +9 -0
- data/test/models/mixed_case_monkey.rb +3 -0
- data/test/models/molecule.rb +6 -0
- data/test/models/movie.rb +5 -0
- data/test/models/order.rb +4 -0
- data/test/models/organization.rb +14 -0
- data/test/models/owner.rb +34 -0
- data/test/models/parrot.rb +29 -0
- data/test/models/person.rb +143 -0
- data/test/models/personal_legacy_thing.rb +4 -0
- data/test/models/pet.rb +15 -0
- data/test/models/pirate.rb +92 -0
- data/test/models/possession.rb +3 -0
- data/test/models/post.rb +264 -0
- data/test/models/price_estimate.rb +4 -0
- data/test/models/professor.rb +5 -0
- data/test/models/project.rb +29 -0
- data/test/models/publisher.rb +2 -0
- data/test/models/publisher/article.rb +4 -0
- data/test/models/publisher/magazine.rb +3 -0
- data/test/models/randomly_named_c1.rb +3 -0
- data/test/models/rating.rb +4 -0
- data/test/models/reader.rb +23 -0
- data/test/models/record.rb +2 -0
- data/test/models/reference.rb +22 -0
- data/test/models/reply.rb +61 -0
- data/test/models/ship.rb +33 -0
- data/test/models/ship_part.rb +8 -0
- data/test/models/shop.rb +17 -0
- data/test/models/shop_account.rb +6 -0
- data/test/models/speedometer.rb +6 -0
- data/test/models/sponsor.rb +7 -0
- data/test/models/string_key_object.rb +3 -0
- data/test/models/student.rb +4 -0
- data/test/models/subject.rb +16 -0
- data/test/models/subscriber.rb +8 -0
- data/test/models/subscription.rb +4 -0
- data/test/models/tag.rb +7 -0
- data/test/models/tagging.rb +13 -0
- data/test/models/task.rb +5 -0
- data/test/models/topic.rb +124 -0
- data/test/models/toy.rb +6 -0
- data/test/models/traffic_light.rb +4 -0
- data/test/models/treasure.rb +14 -0
- data/test/models/treaty.rb +7 -0
- data/test/models/tyre.rb +11 -0
- data/test/models/uuid_child.rb +3 -0
- data/test/models/uuid_parent.rb +3 -0
- data/test/models/vegetables.rb +24 -0
- data/test/models/vehicle.rb +7 -0
- data/test/models/vertex.rb +9 -0
- data/test/models/warehouse_thing.rb +5 -5
- data/test/models/wheel.rb +3 -0
- data/test/models/without_table.rb +3 -0
- data/test/models/zine.rb +3 -0
- data/test/schema/mysql2_specific_schema.rb +58 -0
- data/test/schema/mysql_specific_schema.rb +70 -0
- data/test/schema/oracle_specific_schema.rb +43 -0
- data/test/schema/postgresql_specific_schema.rb +202 -0
- data/test/schema/schema.rb +938 -751
- data/test/schema/sqlite_specific_schema.rb +22 -0
- data/test/support/config.rb +43 -0
- data/test/support/connection.rb +22 -0
- data/test/support/connection_helper.rb +14 -0
- data/test/support/ddl_helper.rb +8 -0
- data/test/support/schema_dumping_helper.rb +20 -0
- metadata +444 -18
@@ -0,0 +1,36 @@
|
|
1
|
+
require "cases/helper"
|
2
|
+
|
3
|
+
module ActiveRecord
|
4
|
+
class Migration
|
5
|
+
class LoggerTest < ActiveRecord::TestCase
|
6
|
+
# MySQL can't roll back ddl changes
|
7
|
+
self.use_transactional_fixtures = false
|
8
|
+
|
9
|
+
Migration = Struct.new(:name, :version) do
|
10
|
+
def disable_ddl_transaction; false end
|
11
|
+
def migrate direction
|
12
|
+
# do nothing
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def setup
|
17
|
+
super
|
18
|
+
ActiveRecord::SchemaMigration.create_table
|
19
|
+
ActiveRecord::SchemaMigration.delete_all
|
20
|
+
end
|
21
|
+
|
22
|
+
teardown do
|
23
|
+
ActiveRecord::SchemaMigration.drop_table
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_migration_should_be_run_without_logger
|
27
|
+
previous_logger = ActiveRecord::Base.logger
|
28
|
+
ActiveRecord::Base.logger = nil
|
29
|
+
migrations = [Migration.new('a', 1), Migration.new('b', 2), Migration.new('c', 3)]
|
30
|
+
ActiveRecord::Migrator.new(:up, migrations).migrate
|
31
|
+
ensure
|
32
|
+
ActiveRecord::Base.logger = previous_logger
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'cases/helper'
|
2
|
+
require "minitest/mock"
|
3
|
+
|
4
|
+
module ActiveRecord
|
5
|
+
class Migration
|
6
|
+
class PendingMigrationsTest < ActiveRecord::TestCase
|
7
|
+
def setup
|
8
|
+
super
|
9
|
+
@connection = Minitest::Mock.new
|
10
|
+
@app = Minitest::Mock.new
|
11
|
+
conn = @connection
|
12
|
+
@pending = Class.new(CheckPending) {
|
13
|
+
define_method(:connection) { conn }
|
14
|
+
}.new(@app)
|
15
|
+
@pending.instance_variable_set :@last_check, -1 # Force checking
|
16
|
+
end
|
17
|
+
|
18
|
+
def teardown
|
19
|
+
assert @connection.verify
|
20
|
+
assert @app.verify
|
21
|
+
super
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_errors_if_pending
|
25
|
+
@connection.expect :supports_migrations?, true
|
26
|
+
|
27
|
+
ActiveRecord::Migrator.stub :needs_migration?, true do
|
28
|
+
assert_raise ActiveRecord::PendingMigrationError do
|
29
|
+
@pending.call(nil)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_checks_if_supported
|
35
|
+
@connection.expect :supports_migrations?, true
|
36
|
+
@app.expect :call, nil, [:foo]
|
37
|
+
|
38
|
+
ActiveRecord::Migrator.stub :needs_migration?, false do
|
39
|
+
@pending.call(:foo)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def test_doesnt_check_if_unsupported
|
44
|
+
@connection.expect :supports_migrations?, false
|
45
|
+
@app.expect :call, nil, [:foo]
|
46
|
+
|
47
|
+
ActiveRecord::Migrator.stub :needs_migration?, true do
|
48
|
+
@pending.call(:foo)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,214 @@
|
|
1
|
+
require 'cases/helper'
|
2
|
+
|
3
|
+
if ActiveRecord::Base.connection.supports_foreign_keys?
|
4
|
+
module ActiveRecord
|
5
|
+
class Migration
|
6
|
+
class ReferencesForeignKeyTest < ActiveRecord::TestCase
|
7
|
+
|
8
|
+
|
9
|
+
setup do
|
10
|
+
@connection = ActiveRecord::Base.connection
|
11
|
+
|
12
|
+
end
|
13
|
+
|
14
|
+
|
15
|
+
teardown do
|
16
|
+
@connection.drop_table("testings") if @connection.table_exists? "testings"
|
17
|
+
@connection.drop_table("testing_parents") if @connection.table_exists? "testing_parents"
|
18
|
+
end
|
19
|
+
|
20
|
+
|
21
|
+
test "foreign keys can be created with the table" do
|
22
|
+
@connection.drop_table("testings") if @connection.table_exists? "testings"
|
23
|
+
@connection.drop_table("testing_parents") if @connection.table_exists? "testing_parents"
|
24
|
+
@connection.create_table(:testing_parents, force: true)
|
25
|
+
@connection.create_table :testings do |t|
|
26
|
+
t.references :testing_parent, foreign_key: true
|
27
|
+
end
|
28
|
+
|
29
|
+
fk = @connection.foreign_keys("testings").first
|
30
|
+
if current_adapter?(:IBM_DBAdapter)
|
31
|
+
assert_equal "testings".upcase, fk.from_table.upcase
|
32
|
+
assert_equal "testing_parents".upcase, fk.to_table.upcase
|
33
|
+
else
|
34
|
+
assert_equal "testings", fk.from_table
|
35
|
+
assert_equal "testing_parents", fk.to_table
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
|
41
|
+
test "no foreign key is created by default" do
|
42
|
+
@connection.drop_table("testings") if @connection.table_exists? "testings"
|
43
|
+
@connection.drop_table("testing_parents") if @connection.table_exists? "testing_parents"
|
44
|
+
@connection.create_table(:testing_parents, force: true)
|
45
|
+
@connection.create_table :testings do |t|
|
46
|
+
t.references :testing_parent
|
47
|
+
end
|
48
|
+
|
49
|
+
assert_equal [], @connection.foreign_keys("testings")
|
50
|
+
end
|
51
|
+
|
52
|
+
|
53
|
+
test "options hash can be passed" do
|
54
|
+
@connection.drop_table("testings") if @connection.table_exists? "testings"
|
55
|
+
@connection.drop_table("testing_parents") if @connection.table_exists? "testing_parents"
|
56
|
+
@connection.create_table :testing_parents, primary_key: 'other_id'
|
57
|
+
@connection.create_table :testings do |t|
|
58
|
+
t.references :testing_parent, foreign_key: { primary_key: :other_id }
|
59
|
+
end
|
60
|
+
|
61
|
+
if current_adapter?(:IBM_DBAdapter)
|
62
|
+
fk = @connection.foreign_keys("TESTINGS").find { |k| k.to_table == "TESTING_PARENTS" }
|
63
|
+
assert_equal "OTHER_ID", fk.primary_key
|
64
|
+
else
|
65
|
+
fk = @connection.foreign_keys("testings").find { |k| k.to_table == "testing_parents" }
|
66
|
+
assert_equal "other_id", fk.primary_key
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
|
71
|
+
test "foreign keys cannot be added to polymorphic relations when creating the table" do
|
72
|
+
@connection.drop_table("testings") if @connection.table_exists? "testings"
|
73
|
+
@connection.drop_table("testing_parents") if @connection.table_exists? "testing_parents"
|
74
|
+
@connection.create_table(:testing_parents, force: true)
|
75
|
+
@connection.create_table :testings do |t|
|
76
|
+
assert_raises(ArgumentError) do
|
77
|
+
t.references :testing_parent, polymorphic: true, foreign_key: true
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
|
83
|
+
test "foreign keys can be created while changing the table" do
|
84
|
+
@connection.drop_table("testings") if @connection.table_exists? "testings"
|
85
|
+
@connection.drop_table("testing_parents") if @connection.table_exists? "testing_parents"
|
86
|
+
@connection.create_table(:testing_parents, force: true)
|
87
|
+
@connection.create_table :testings
|
88
|
+
@connection.change_table :testings do |t|
|
89
|
+
t.references :testing_parent, foreign_key: true
|
90
|
+
end
|
91
|
+
|
92
|
+
fk = @connection.foreign_keys("testings").first
|
93
|
+
|
94
|
+
if current_adapter?(:IBM_DBAdapter)
|
95
|
+
assert_equal "testings".upcase, fk.from_table.upcase
|
96
|
+
assert_equal "testing_parents".upcase, fk.to_table.upcase
|
97
|
+
else
|
98
|
+
assert_equal "testings", fk.from_table
|
99
|
+
assert_equal "testing_parents", fk.to_table
|
100
|
+
end
|
101
|
+
|
102
|
+
end
|
103
|
+
|
104
|
+
|
105
|
+
test "foreign keys are not added by default when changing the table" do
|
106
|
+
@connection.drop_table("testings") if @connection.table_exists? "testings"
|
107
|
+
@connection.drop_table("testing_parents") if @connection.table_exists? "testing_parents"
|
108
|
+
@connection.create_table(:testing_parents, force: true)
|
109
|
+
@connection.create_table :testings
|
110
|
+
@connection.change_table :testings do |t|
|
111
|
+
t.references :testing_parent
|
112
|
+
end
|
113
|
+
|
114
|
+
assert_equal [], @connection.foreign_keys("testings")
|
115
|
+
end
|
116
|
+
|
117
|
+
|
118
|
+
test "foreign keys accept options when changing the table" do
|
119
|
+
@connection.drop_table("testings") if @connection.table_exists? "testings"
|
120
|
+
@connection.drop_table("testing_parents") if @connection.table_exists? "testing_parents"
|
121
|
+
@connection.create_table :testing_parents, primary_key: 'other_id'
|
122
|
+
|
123
|
+
@connection.create_table :testings
|
124
|
+
@connection.change_table :testings do |t|
|
125
|
+
t.references :testing_parent, foreign_key: { primary_key: :other_id }
|
126
|
+
end
|
127
|
+
|
128
|
+
if current_adapter?(:IBM_DBAdapter)
|
129
|
+
fk = @connection.foreign_keys("TESTINGS").find { |k| k.to_table == "TESTING_PARENTS" }
|
130
|
+
assert_equal "OTHER_ID", fk.primary_key
|
131
|
+
else
|
132
|
+
fk = @connection.foreign_keys("testings").find { |k| k.to_table == "testing_parents" }
|
133
|
+
assert_equal "other_id", fk.primary_key
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
137
|
+
|
138
|
+
test "foreign keys cannot be added to polymorphic relations when changing the table" do
|
139
|
+
@connection.drop_table("testings") if @connection.table_exists? "testings"
|
140
|
+
@connection.drop_table("testing_parents") if @connection.table_exists? "testing_parents"
|
141
|
+
@connection.create_table(:testing_parents, force: true)
|
142
|
+
@connection.create_table :testings
|
143
|
+
@connection.change_table :testings do |t|
|
144
|
+
assert_raises(ArgumentError) do
|
145
|
+
t.references :testing_parent, polymorphic: true, foreign_key: true
|
146
|
+
end
|
147
|
+
end
|
148
|
+
end
|
149
|
+
|
150
|
+
test "foreign key column can be removed" do
|
151
|
+
@connection.drop_table("testings") if @connection.table_exists? "testings"
|
152
|
+
@connection.drop_table("testing_parents") if @connection.table_exists? "testing_parents"
|
153
|
+
@connection.create_table(:testing_parents, force: true)
|
154
|
+
@connection.create_table :testings do |t|
|
155
|
+
t.references :testing_parent, index: true, foreign_key: true
|
156
|
+
end
|
157
|
+
|
158
|
+
assert_difference "@connection.foreign_keys('testings').size", -1 do
|
159
|
+
@connection.remove_reference :testings, :testing_parent, foreign_key: true
|
160
|
+
end
|
161
|
+
end
|
162
|
+
|
163
|
+
test "foreign key methods respect pluralize_table_names" do
|
164
|
+
begin
|
165
|
+
original_pluralize_table_names = ActiveRecord::Base.pluralize_table_names
|
166
|
+
ActiveRecord::Base.pluralize_table_names = false
|
167
|
+
@connection.drop_table("testing") if @connection.table_exists? "testing"
|
168
|
+
@connection.create_table :testing
|
169
|
+
@connection.change_table :testing_parents do |t|
|
170
|
+
t.references :testing, foreign_key: true
|
171
|
+
end
|
172
|
+
|
173
|
+
fk = @connection.foreign_keys("testing_parents").first
|
174
|
+
if current_adapter?(:IBM_DBAdapter)
|
175
|
+
assert_equal "testing_parents".upcase, fk.from_table.upcase
|
176
|
+
assert_equal "testing".upcase, fk.to_table.upcase
|
177
|
+
else
|
178
|
+
assert_equal "testing_parents", fk.from_table
|
179
|
+
assert_equal "testing", fk.to_table
|
180
|
+
end
|
181
|
+
|
182
|
+
|
183
|
+
assert_difference "@connection.foreign_keys('testing_parents').size", -1 do
|
184
|
+
@connection.remove_reference :testing_parents, :testing, foreign_key: true
|
185
|
+
end
|
186
|
+
ensure
|
187
|
+
ActiveRecord::Base.pluralize_table_names = original_pluralize_table_names
|
188
|
+
@connection.drop_table "testing", if_exists: true
|
189
|
+
end
|
190
|
+
end
|
191
|
+
end
|
192
|
+
end
|
193
|
+
end
|
194
|
+
else
|
195
|
+
class ReferencesWithoutForeignKeySupportTest < ActiveRecord::TestCase
|
196
|
+
setup do
|
197
|
+
@connection = ActiveRecord::Base.connection
|
198
|
+
@connection.create_table(:testing_parents, force: true)
|
199
|
+
end
|
200
|
+
|
201
|
+
teardown do
|
202
|
+
@connection.drop_table("testings", if_exists: true)
|
203
|
+
@connection.drop_table("testing_parents", if_exists: true)
|
204
|
+
end
|
205
|
+
|
206
|
+
test "ignores foreign keys defined with the table" do
|
207
|
+
@connection.create_table :testings do |t|
|
208
|
+
t.references :testing_parent, foreign_key: true
|
209
|
+
end
|
210
|
+
|
211
|
+
assert_includes @connection.tables, "testings"
|
212
|
+
end
|
213
|
+
end
|
214
|
+
end
|
@@ -0,0 +1,101 @@
|
|
1
|
+
require 'cases/helper'
|
2
|
+
|
3
|
+
module ActiveRecord
|
4
|
+
class Migration
|
5
|
+
class ReferencesIndexTest < ActiveRecord::TestCase
|
6
|
+
attr_reader :connection, :table_name
|
7
|
+
|
8
|
+
def setup
|
9
|
+
super
|
10
|
+
@connection = ActiveRecord::Base.connection
|
11
|
+
@table_name = :testings
|
12
|
+
end
|
13
|
+
|
14
|
+
teardown do
|
15
|
+
connection.drop_table :testings rescue nil
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_creates_index
|
19
|
+
connection.create_table table_name do |t|
|
20
|
+
t.references :foo, :index => true
|
21
|
+
end
|
22
|
+
|
23
|
+
assert connection.index_exists?(table_name, :foo_id, :name => :index_testings_on_foo_id)
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_does_not_create_index
|
27
|
+
connection.create_table table_name do |t|
|
28
|
+
t.references :foo
|
29
|
+
end
|
30
|
+
|
31
|
+
assert_not connection.index_exists?(table_name, :foo_id, :name => :index_testings_on_foo_id)
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_does_not_create_index_explicit
|
35
|
+
connection.create_table table_name do |t|
|
36
|
+
t.references :foo, :index => false
|
37
|
+
end
|
38
|
+
|
39
|
+
assert_not connection.index_exists?(table_name, :foo_id, :name => :index_testings_on_foo_id)
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_creates_index_with_options
|
43
|
+
connection.create_table table_name do |t|
|
44
|
+
t.references :foo, :index => {:name => :index_testings_on_yo_momma}
|
45
|
+
t.references :bar, :index => {:unique => true}
|
46
|
+
end
|
47
|
+
|
48
|
+
assert connection.index_exists?(table_name, :foo_id, :name => :index_testings_on_yo_momma)
|
49
|
+
assert connection.index_exists?(table_name, :bar_id, :name => :index_testings_on_bar_id, :unique => true)
|
50
|
+
end
|
51
|
+
|
52
|
+
unless current_adapter? :OracleAdapter
|
53
|
+
def test_creates_polymorphic_index
|
54
|
+
connection.create_table table_name do |t|
|
55
|
+
t.references :foo, :polymorphic => true, :index => true
|
56
|
+
end
|
57
|
+
|
58
|
+
assert connection.index_exists?(table_name, [:foo_type, :foo_id], name: :index_testings_on_foo_type_and_foo_id)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
def test_creates_index_for_existing_table
|
63
|
+
connection.create_table table_name
|
64
|
+
connection.change_table table_name do |t|
|
65
|
+
t.references :foo, :index => true
|
66
|
+
end
|
67
|
+
|
68
|
+
assert connection.index_exists?(table_name, :foo_id, :name => :index_testings_on_foo_id)
|
69
|
+
end
|
70
|
+
|
71
|
+
def test_does_not_create_index_for_existing_table
|
72
|
+
connection.create_table table_name
|
73
|
+
connection.change_table table_name do |t|
|
74
|
+
t.references :foo
|
75
|
+
end
|
76
|
+
|
77
|
+
assert_not connection.index_exists?(table_name, :foo_id, :name => :index_testings_on_foo_id)
|
78
|
+
end
|
79
|
+
|
80
|
+
def test_does_not_create_index_for_existing_table_explicit
|
81
|
+
connection.create_table table_name
|
82
|
+
connection.change_table table_name do |t|
|
83
|
+
t.references :foo, :index => false
|
84
|
+
end
|
85
|
+
|
86
|
+
assert_not connection.index_exists?(table_name, :foo_id, :name => :index_testings_on_foo_id)
|
87
|
+
end
|
88
|
+
|
89
|
+
unless current_adapter? :OracleAdapter
|
90
|
+
def test_creates_polymorphic_index_for_existing_table
|
91
|
+
connection.create_table table_name
|
92
|
+
connection.change_table table_name do |t|
|
93
|
+
t.references :foo, :polymorphic => true, :index => true
|
94
|
+
end
|
95
|
+
|
96
|
+
assert connection.index_exists?(table_name, [:foo_type, :foo_id], name: :index_testings_on_foo_type_and_foo_id)
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
@@ -0,0 +1,116 @@
|
|
1
|
+
require "cases/migration/helper"
|
2
|
+
|
3
|
+
module ActiveRecord
|
4
|
+
class Migration
|
5
|
+
class ReferencesStatementsTest < ActiveRecord::TestCase
|
6
|
+
include ActiveRecord::Migration::TestHelper
|
7
|
+
|
8
|
+
self.use_transactional_fixtures = false
|
9
|
+
|
10
|
+
def setup
|
11
|
+
super
|
12
|
+
@table_name = :test_models
|
13
|
+
|
14
|
+
add_column table_name, :supplier_id, :integer
|
15
|
+
add_index table_name, :supplier_id
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_creates_reference_id_column
|
19
|
+
add_reference table_name, :user
|
20
|
+
assert column_exists?(table_name, :user_id, :integer)
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_does_not_create_reference_type_column
|
24
|
+
add_reference table_name, :taggable
|
25
|
+
assert_not column_exists?(table_name, :taggable_type, :string)
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_creates_reference_type_column
|
29
|
+
add_reference table_name, :taggable, polymorphic: true
|
30
|
+
assert column_exists?(table_name, :taggable_type, :string)
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_creates_reference_id_index
|
34
|
+
add_reference table_name, :user, index: true
|
35
|
+
assert index_exists?(table_name, :user_id)
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_does_not_create_reference_id_index
|
39
|
+
add_reference table_name, :user
|
40
|
+
assert_not index_exists?(table_name, :user_id)
|
41
|
+
end
|
42
|
+
|
43
|
+
def test_creates_polymorphic_index
|
44
|
+
add_reference table_name, :taggable, polymorphic: true, index: true
|
45
|
+
assert index_exists?(table_name, [:taggable_type, :taggable_id])
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_creates_reference_type_column_with_default
|
49
|
+
add_reference table_name, :taggable, polymorphic: { default: 'Photo' }, index: true
|
50
|
+
assert column_exists?(table_name, :taggable_type, :string, default: 'Photo')
|
51
|
+
end
|
52
|
+
|
53
|
+
def test_creates_named_index
|
54
|
+
add_reference table_name, :tag, index: { name: 'index_taggings_on_tag_id' }
|
55
|
+
assert index_exists?(table_name, :tag_id, name: 'index_taggings_on_tag_id')
|
56
|
+
end
|
57
|
+
|
58
|
+
def test_creates_reference_id_with_specified_type
|
59
|
+
add_reference table_name, :user, type: :string
|
60
|
+
assert column_exists?(table_name, :user_id, :string)
|
61
|
+
end
|
62
|
+
|
63
|
+
def test_deletes_reference_id_column
|
64
|
+
remove_reference table_name, :supplier
|
65
|
+
assert_not column_exists?(table_name, :supplier_id, :integer)
|
66
|
+
end
|
67
|
+
|
68
|
+
def test_deletes_reference_id_index
|
69
|
+
remove_reference table_name, :supplier
|
70
|
+
assert_not index_exists?(table_name, :supplier_id)
|
71
|
+
end
|
72
|
+
|
73
|
+
def test_does_not_delete_reference_type_column
|
74
|
+
with_polymorphic_column do
|
75
|
+
remove_reference table_name, :supplier
|
76
|
+
|
77
|
+
assert_not column_exists?(table_name, :supplier_id, :integer)
|
78
|
+
assert column_exists?(table_name, :supplier_type, :string)
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
def test_deletes_reference_type_column
|
83
|
+
with_polymorphic_column do
|
84
|
+
remove_reference table_name, :supplier, polymorphic: true
|
85
|
+
assert_not column_exists?(table_name, :supplier_type, :string)
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
def test_deletes_polymorphic_index
|
90
|
+
with_polymorphic_column do
|
91
|
+
remove_reference table_name, :supplier, polymorphic: true
|
92
|
+
assert_not index_exists?(table_name, [:supplier_id, :supplier_type])
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
def test_add_belongs_to_alias
|
97
|
+
add_belongs_to table_name, :user
|
98
|
+
assert column_exists?(table_name, :user_id, :integer)
|
99
|
+
end
|
100
|
+
|
101
|
+
def test_remove_belongs_to_alias
|
102
|
+
remove_belongs_to table_name, :supplier
|
103
|
+
assert_not column_exists?(table_name, :supplier_id, :integer)
|
104
|
+
end
|
105
|
+
|
106
|
+
private
|
107
|
+
|
108
|
+
def with_polymorphic_column
|
109
|
+
add_column table_name, :supplier_type, :string
|
110
|
+
add_index table_name, [:supplier_id, :supplier_type]
|
111
|
+
|
112
|
+
yield
|
113
|
+
end
|
114
|
+
end
|
115
|
+
end
|
116
|
+
end
|