activerecord-oracle_enhanced-adapter 1.6.0.beta1 → 1.6.0
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/History.md +22 -2
- data/VERSION +1 -1
- data/activerecord-oracle_enhanced-adapter.gemspec +2 -2
- data/lib/active_record/connection_adapters/oracle_enhanced/schema_definitions.rb +3 -0
- data/lib/active_record/connection_adapters/oracle_enhanced/schema_statements.rb +3 -0
- data/spec/active_record/connection_adapters/oracle_enhanced_schema_dump_spec.rb +5 -4
- data/spec/active_record/connection_adapters/oracle_enhanced_schema_statements_spec.rb +14 -5
- data/spec/active_record/connection_adapters/oracle_enhanced_structure_dump_spec.rb +1 -0
- metadata +4 -4
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: fd6c2c33f02b87cf6022cfe64bf057a9ed992554
         | 
| 4 | 
            +
              data.tar.gz: c7358edd06e352897de691eb71ed140ba6518b0b
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: c16fb1f0555c03526c8d0cd3c3fad645d1b905749f87dba95e5d7e4465be43a08a3f4766aa26a621f04ab9d3ca5856f831538e5127b97780f94e8b941e6f25ca
         | 
| 7 | 
            +
              data.tar.gz: f8914aa9fc1ee082c39015f42c10e9edef0f32841b4d855e9b1da9d45d6ab6d80bddda6bb5b1cf0010b6b28b6b2af2d6feefb841acc7a8ca2618c143dd8f0cc8
         | 
    
        data/History.md
    CHANGED
    
    | @@ -1,5 +1,25 @@ | |
| 1 | 
            -
            ## 1.6.0 | 
| 2 | 
            -
             | 
| 1 | 
            +
            ## 1.6.0 / 2015-06-25
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            * Changes and bug fixes since 1.6.0.beta1
         | 
| 4 | 
            +
             | 
| 5 | 
            +
             * Add deprecation warnings for Oracle enhanced specific foreign key methods [#631]
         | 
| 6 | 
            +
             * Skip composite foreign key tests not supported in this version [#632]
         | 
| 7 | 
            +
             * Do not dump default foreign key name [#633]
         | 
| 8 | 
            +
             * Schema dump uses `:on_delete` option instead of `:dependent` [#634]
         | 
| 9 | 
            +
             * Use Rails foreign key name in rspec unit tests [#635]
         | 
| 10 | 
            +
             * Add deprecate warning if foreign key name length is longer than 30 byte [#636]
         | 
| 11 | 
            +
             * Foreign key name longer than 30 byte will be shortened using Digest::SHA1.hexdigest [#637]
         | 
| 12 | 
            +
             * Schema dumper for :integer will not dump :precision 0 [#638]
         | 
| 13 | 
            +
             * Update foreign key names for add_foreign_key with table_name_prefix [#643]
         | 
| 14 | 
            +
             | 
| 15 | 
            +
            * Known Issues since 1.6.0.beta1
         | 
| 16 | 
            +
             * table_name_prefix and table_name_suffix changes column names which cause ORA-00904 [#639]
         | 
| 17 | 
            +
             * custom methods should rollback record when exception is raised in after_create callback fails [#640]
         | 
| 18 | 
            +
             * custom methods for create, update and destroy should log create record fails [#641]
         | 
| 19 | 
            +
             | 
| 20 | 
            +
            ## 1.6.0.beta 1 / 2015-06-19
         | 
| 21 | 
            +
             | 
| 22 | 
            +
            * Enhancements
         | 
| 3 23 | 
             
             * Support Rails 4.2
         | 
| 4 24 | 
             
             * Support Rails native foreign key syntax [#488, #618]
         | 
| 5 25 |  | 
    
        data/VERSION
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
            1.6.0 | 
| 1 | 
            +
            1.6.0
         | 
| @@ -5,12 +5,12 @@ | |
| 5 5 |  | 
| 6 6 | 
             
            Gem::Specification.new do |s|
         | 
| 7 7 | 
             
              s.name = %q{activerecord-oracle_enhanced-adapter}
         | 
| 8 | 
            -
              s.version = "1.6.0 | 
| 8 | 
            +
              s.version = "1.6.0"
         | 
| 9 9 |  | 
| 10 10 | 
             
              s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
         | 
| 11 11 | 
             
              s.license = 'MIT'
         | 
| 12 12 | 
             
              s.authors = [%q{Raimonds Simanovskis}]
         | 
| 13 | 
            -
              s.date = %q{2015-06- | 
| 13 | 
            +
              s.date = %q{2015-06-25}
         | 
| 14 14 | 
             
              s.description = %q{Oracle "enhanced" ActiveRecord adapter contains useful additional methods for working with new and legacy Oracle databases.
         | 
| 15 15 | 
             
            This adapter is superset of original ActiveRecord Oracle adapter.
         | 
| 16 16 | 
             
            }
         | 
| @@ -14,6 +14,7 @@ module ActiveRecord | |
| 14 14 | 
             
                  class ForeignKeyDefinition < ActiveRecord::ConnectionAdapters::ForeignKeyDefinition
         | 
| 15 15 | 
             
                    def name
         | 
| 16 16 | 
             
                      if options[:name].length > OracleEnhancedAdapter::IDENTIFIER_MAX_LENGTH
         | 
| 17 | 
            +
                        ActiveSupport::Deprecation.warn "Foreign key name #{options[:name]} is too long. It will not get shorten in later version of Oracle enhanced adapter"
         | 
| 17 18 | 
             
                        'c'+Digest::SHA1.hexdigest(options[:name])[0,OracleEnhancedAdapter::IDENTIFIER_MAX_LENGTH-1]
         | 
| 18 19 | 
             
                      else
         | 
| 19 20 | 
             
                        options[:name]
         | 
| @@ -78,11 +79,13 @@ module ActiveRecord | |
| 78 79 |  | 
| 79 80 | 
             
                  class Table < ActiveRecord::ConnectionAdapters::Table
         | 
| 80 81 | 
             
                    def foreign_key(to_table, options = {})
         | 
| 82 | 
            +
                      ActiveSupport::Deprecation.warn "`foreign_key` option will be deprecated. Please use `references` option"
         | 
| 81 83 | 
             
                      to_table = to_table.to_s.pluralize if ActiveRecord::Base.pluralize_table_names
         | 
| 82 84 | 
             
                      @base.add_foreign_key(@name, to_table, options)
         | 
| 83 85 | 
             
                    end
         | 
| 84 86 |  | 
| 85 87 | 
             
                    def remove_foreign_key(options = {})
         | 
| 88 | 
            +
                      ActiveSupport::Deprecation.warn "`remove_foreign_key` option will be deprecated. Please use `remove_references` option"
         | 
| 86 89 | 
             
                      @base.remove_foreign_key(@name, options)
         | 
| 87 90 | 
             
                    end
         | 
| 88 91 | 
             
                  end
         | 
| @@ -399,6 +399,9 @@ module ActiveRecord | |
| 399 399 | 
             
                    end
         | 
| 400 400 |  | 
| 401 401 | 
             
                    def add_foreign_key(from_table, to_table, options = {})
         | 
| 402 | 
            +
                      if options[:dependent]
         | 
| 403 | 
            +
                        ActiveSupport::Deprecation.warn "`:dependent` option will be deprecated. Please use `:on_delete` option"
         | 
| 404 | 
            +
                      end
         | 
| 402 405 | 
             
                      case options[:dependent]  
         | 
| 403 406 | 
             
                      when :delete then options[:on_delete] = :cascade
         | 
| 404 407 | 
             
                      when :nullify then options[:on_delete] = :nullify
         | 
| @@ -180,21 +180,21 @@ describe "OracleEnhancedAdapter schema dump" do | |
| 180 180 | 
             
                  schema_define do
         | 
| 181 181 | 
             
                    add_foreign_key :test_comments, :test_posts
         | 
| 182 182 | 
             
                  end
         | 
| 183 | 
            -
                  standard_dump.should =~ /add_foreign_key "test_comments", "test_posts" | 
| 183 | 
            +
                  standard_dump.should =~ /add_foreign_key "test_comments", "test_posts"/
         | 
| 184 184 | 
             
                end
         | 
| 185 185 |  | 
| 186 186 | 
             
                it "should include foreign key with delete dependency in schema dump" do
         | 
| 187 187 | 
             
                  schema_define do
         | 
| 188 188 | 
             
                    add_foreign_key :test_comments, :test_posts, dependent: :delete
         | 
| 189 189 | 
             
                  end
         | 
| 190 | 
            -
                  standard_dump.should =~ /add_foreign_key "test_comments", "test_posts",  | 
| 190 | 
            +
                  standard_dump.should =~ /add_foreign_key "test_comments", "test_posts", on_delete: :cascade/
         | 
| 191 191 | 
             
                end
         | 
| 192 192 |  | 
| 193 193 | 
             
                it "should include foreign key with nullify dependency in schema dump" do
         | 
| 194 194 | 
             
                  schema_define do
         | 
| 195 195 | 
             
                    add_foreign_key :test_comments, :test_posts, dependent: :nullify
         | 
| 196 196 | 
             
                  end
         | 
| 197 | 
            -
                  standard_dump.should =~ /add_foreign_key "test_comments", "test_posts",  | 
| 197 | 
            +
                  standard_dump.should =~ /add_foreign_key "test_comments", "test_posts", on_delete: :nullify/
         | 
| 198 198 | 
             
                end
         | 
| 199 199 |  | 
| 200 200 | 
             
                it "should not include foreign keys on ignored table names in schema dump" do
         | 
| @@ -226,6 +226,7 @@ describe "OracleEnhancedAdapter schema dump" do | |
| 226 226 | 
             
                end
         | 
| 227 227 |  | 
| 228 228 | 
             
                it "should include composite foreign keys" do
         | 
| 229 | 
            +
                  pending "Composite foreign keys are not supported in this version"
         | 
| 229 230 | 
             
                  schema_define do
         | 
| 230 231 | 
             
                    add_column :test_posts, :baz_id, :integer
         | 
| 231 232 | 
             
                    add_column :test_posts, :fooz_id, :integer
         | 
| @@ -405,7 +406,7 @@ describe "OracleEnhancedAdapter schema dump" do | |
| 405 406 | 
             
                it 'should dump correctly' do
         | 
| 406 407 | 
             
                  standard_dump.should =~ /t\.virtual "full_name",(\s*)limit: 512,(\s*)as: "\\"FIRST_NAME\\"\|\|', '\|\|\\"LAST_NAME\\"",(\s*)type: :string/
         | 
| 407 408 | 
             
                  standard_dump.should =~ /t\.virtual "short_name",(\s*)limit: 300,(\s*)as:(.*),(\s*)type: :string/
         | 
| 408 | 
            -
                  standard_dump.should =~ /t\.virtual "full_name_length",(\s*)precision: 38,(\s*) | 
| 409 | 
            +
                  standard_dump.should =~ /t\.virtual "full_name_length",(\s*)precision: 38,(\s*)as:(.*),(\s*)type: :integer/
         | 
| 409 410 | 
             
                  standard_dump.should =~ /t\.virtual "name_ratio",(\s*)as:(.*)\"$/ # no :type
         | 
| 410 411 | 
             
                  standard_dump.should =~ /t\.virtual "abbrev_name",(\s*)limit: 100,(\s*)as:(.*),(\s*)type: :string/
         | 
| 411 412 | 
             
                  standard_dump.should =~ /t\.virtual "field_with_leading_space",(\s*)limit: 300,(\s*)as: "' '\|\|\\"FIRST_NAME\\"\|\|' '",(\s*)type: :string/
         | 
| @@ -627,25 +627,28 @@ end | |
| 627 627 | 
             
                end
         | 
| 628 628 |  | 
| 629 629 | 
             
                it "should add foreign key" do
         | 
| 630 | 
            +
                  fk_name = "fk_rails_#{Digest::SHA256.hexdigest("test_comments_test_post_id_fk").first(10)}"
         | 
| 631 | 
            +
             | 
| 630 632 | 
             
                  schema_define do
         | 
| 631 633 | 
             
                    add_foreign_key :test_comments, :test_posts
         | 
| 632 634 | 
             
                  end
         | 
| 633 635 | 
             
                  lambda do
         | 
| 634 636 | 
             
                    TestComment.create(:body => "test", :test_post_id => 1)
         | 
| 635 | 
            -
                  end.should raise_error() {|e| e.message.should =~ /ORA-02291 | 
| 637 | 
            +
                  end.should raise_error() {|e| e.message.should =~ /ORA-02291.*\.#{fk_name}/i}
         | 
| 636 638 | 
             
                end
         | 
| 637 639 |  | 
| 638 640 | 
             
                context "with table_name_prefix" do
         | 
| 639 641 | 
             
                  let(:table_name_prefix) { 'xxx_' }
         | 
| 640 642 |  | 
| 641 643 | 
             
                  it "should use table_name_prefix for foreign table" do
         | 
| 644 | 
            +
                    fk_name = "fk_rails_#{Digest::SHA256.hexdigest("xxx_test_comments_test_post_id_fk").first(10)}"
         | 
| 642 645 | 
             
                    schema_define do
         | 
| 643 646 | 
             
                      add_foreign_key :test_comments, :test_posts
         | 
| 644 647 | 
             
                    end
         | 
| 645 648 |  | 
| 646 649 | 
             
                    lambda do
         | 
| 647 650 | 
             
                      TestComment.create(:body => "test", :test_post_id => 1)
         | 
| 648 | 
            -
                    end.should raise_error() {|e| e.message.should =~ /ORA-02291 | 
| 651 | 
            +
                    end.should raise_error() {|e| e.message.should =~ /ORA-02291.*\.#{fk_name}/i}
         | 
| 649 652 | 
             
                  end
         | 
| 650 653 | 
             
                end
         | 
| 651 654 |  | 
| @@ -653,13 +656,14 @@ end | |
| 653 656 | 
             
                  let(:table_name_suffix) { '_xxx' }
         | 
| 654 657 |  | 
| 655 658 | 
             
                  it "should use table_name_suffix for foreign table" do
         | 
| 659 | 
            +
                    fk_name = "fk_rails_#{Digest::SHA256.hexdigest("test_comments_xxx_test_post_id_fk").first(10)}"
         | 
| 656 660 | 
             
                    schema_define do
         | 
| 657 661 | 
             
                      add_foreign_key :test_comments, :test_posts
         | 
| 658 662 | 
             
                    end
         | 
| 659 663 |  | 
| 660 664 | 
             
                    lambda do
         | 
| 661 665 | 
             
                      TestComment.create(:body => "test", :test_post_id => 1)
         | 
| 662 | 
            -
                    end.should raise_error() {|e| e.message.should =~ /ORA-02291 | 
| 666 | 
            +
                    end.should raise_error() {|e| e.message.should =~ /ORA-02291.*\.#{fk_name}/i}
         | 
| 663 667 | 
             
                  end
         | 
| 664 668 | 
             
                end
         | 
| 665 669 |  | 
| @@ -678,7 +682,8 @@ end | |
| 678 682 | 
             
                  end
         | 
| 679 683 | 
             
                  lambda do
         | 
| 680 684 | 
             
                    TestComment.create(:body => "test", :test_post_id => 1)
         | 
| 681 | 
            -
                  end.should raise_error() {|e| e.message.should =~ | 
| 685 | 
            +
                  end.should raise_error() {|e| e.message.should =~
         | 
| 686 | 
            +
                    /ORA-02291.*\.C#{Digest::SHA1.hexdigest("test_comments_test_post_id_foreign_key")[0,29].upcase}/}
         | 
| 682 687 | 
             
                end
         | 
| 683 688 |  | 
| 684 689 | 
             
                it "should add foreign key with very long name which is shortened" do
         | 
| @@ -692,12 +697,14 @@ end | |
| 692 697 | 
             
                end
         | 
| 693 698 |  | 
| 694 699 | 
             
                it "should add foreign key with column" do
         | 
| 700 | 
            +
                  fk_name = "fk_rails_#{Digest::SHA256.hexdigest("test_comments_post_id_fk").first(10)}"
         | 
| 701 | 
            +
             | 
| 695 702 | 
             
                  schema_define do
         | 
| 696 703 | 
             
                    add_foreign_key :test_comments, :test_posts, :column => "post_id"
         | 
| 697 704 | 
             
                  end
         | 
| 698 705 | 
             
                  lambda do
         | 
| 699 706 | 
             
                    TestComment.create(:body => "test", :post_id => 1)
         | 
| 700 | 
            -
                  end.should raise_error() {|e| e.message.should =~ /ORA-02291 | 
| 707 | 
            +
                  end.should raise_error() {|e| e.message.should =~ /ORA-02291.*\.#{fk_name}/i}
         | 
| 701 708 | 
             
                end
         | 
| 702 709 |  | 
| 703 710 | 
             
                it "should add foreign key with delete dependency" do
         | 
| @@ -721,6 +728,7 @@ end | |
| 721 728 | 
             
                end
         | 
| 722 729 |  | 
| 723 730 | 
             
                it "should add a composite foreign key" do
         | 
| 731 | 
            +
                  pending "Composite foreign keys are not supported in this version"
         | 
| 724 732 | 
             
                  schema_define do
         | 
| 725 733 | 
             
                    add_column :test_posts, :baz_id, :integer
         | 
| 726 734 | 
             
                    add_column :test_posts, :fooz_id, :integer
         | 
| @@ -743,6 +751,7 @@ end | |
| 743 751 | 
             
                end
         | 
| 744 752 |  | 
| 745 753 | 
             
                it "should add a composite foreign key with name" do
         | 
| 754 | 
            +
                  pending "Composite foreign keys are not supported in this version"
         | 
| 746 755 | 
             
                  schema_define do
         | 
| 747 756 | 
             
                    add_column :test_posts, :baz_id, :integer
         | 
| 748 757 | 
             
                    add_column :test_posts, :fooz_id, :integer
         | 
| @@ -92,6 +92,7 @@ describe "OracleEnhancedAdapter structure dump" do | |
| 92 92 | 
             
                end
         | 
| 93 93 |  | 
| 94 94 | 
             
                it "should dump composite foreign keys" do
         | 
| 95 | 
            +
                  pending "Composite foreign keys are not supported in this version"
         | 
| 95 96 | 
             
                  @conn.add_column :foos, :fooz_id, :integer
         | 
| 96 97 | 
             
                  @conn.add_column :foos, :baz_id, :integer
         | 
| 97 98 |  | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: activerecord-oracle_enhanced-adapter
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1.6.0 | 
| 4 | 
            +
              version: 1.6.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Raimonds Simanovskis
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2015-06- | 
| 11 | 
            +
            date: 2015-06-25 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: jeweler
         | 
| @@ -264,9 +264,9 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 264 264 | 
             
                  version: '0'
         | 
| 265 265 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 266 266 | 
             
              requirements:
         | 
| 267 | 
            -
              - - " | 
| 267 | 
            +
              - - ">="
         | 
| 268 268 | 
             
                - !ruby/object:Gem::Version
         | 
| 269 | 
            -
                  version:  | 
| 269 | 
            +
                  version: '0'
         | 
| 270 270 | 
             
            requirements: []
         | 
| 271 271 | 
             
            rubyforge_project: 
         | 
| 272 272 | 
             
            rubygems_version: 2.4.8
         |