ibm_db 3.0.5-x86-mingw32 → 5.0.5-x86-mingw32
Sign up to get free protection for your applications and to get access to all the features.
- 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
|