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
|