scenic-oracle_adapter 1.3.5 → 1.4.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/CHANGELOG.md +6 -0
- data/Dockerfile +1 -1
- data/Gemfile +1 -1
- data/lib/scenic/adapters/oracle/railtie.rb +13 -5
- data/lib/scenic/adapters/oracle.rb +22 -4
- data/lib/scenic/oracle_adapter/version.rb +1 -1
- data/lib/scenic/oracle_adapter.rb +3 -0
- data/scenic-oracle_adapter.gemspec +1 -2
- metadata +4 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c60d517a9dc52283f5d2706a11f0a6c9b9107e5963a4c29a7fa0a3028007cd94
|
4
|
+
data.tar.gz: 6e8adf1e2bc80e2ebd47cb3d05e441b6edc507163402936cc2c394a3bf2fca08
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7b2a487534bb336fa2a185ecda1d02e18173ff724416a3fd0d5dfd61d452d51ce9d9e8cfa5163851388799a00a649d98fc24b1980715619e6507fe1428771067
|
7
|
+
data.tar.gz: 03ba13f1414657cd3bff98cb2fd295a4ccf4e5813b48a0b11c04d21c3ba8ecdc26791bea1956488ece581461297e09b13c6ec2beb88fa1749ad7fa896e2a2e4b
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## v1.4.0 - June 30, 2025
|
4
|
+
|
5
|
+
- Use scenic 1.9.0
|
6
|
+
- Reduce churn in schema.rb by topologically sorting dumped views
|
7
|
+
- Raise SideBySideNotSupportedError when Scenic's side_by_side mode is attempted
|
8
|
+
|
3
9
|
## v1.3.5 - Oct 9, 2024
|
4
10
|
|
5
11
|
- Silence ActiveRecord output while running specs. Clean green dots! (@eeklund, @dlagerro)
|
data/Dockerfile
CHANGED
data/Gemfile
CHANGED
@@ -1,17 +1,25 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "rails/railtie"
|
4
|
-
require "active_record/connection_adapters/oracle_enhanced_adapter"
|
5
4
|
|
6
5
|
module Scenic
|
7
6
|
module Adapters
|
8
7
|
class Oracle
|
9
8
|
class Railtie < Rails::Railtie
|
10
9
|
ActiveSupport.on_load(:active_record) do
|
11
|
-
if
|
12
|
-
|
13
|
-
|
14
|
-
ActiveRecord::ConnectionAdapters::
|
10
|
+
if Scenic::Adapters::Oracle.uses_oracle_enhanced_adapter?
|
11
|
+
require "active_record/connection_adapters/oracle_enhanced_adapter"
|
12
|
+
|
13
|
+
if defined?(ActiveRecord::ConnectionAdapters::OracleEnhancedSchemaDumper)
|
14
|
+
ActiveRecord::ConnectionAdapters::OracleEnhancedSchemaDumper.prepend Scenic::SchemaDumper
|
15
|
+
else
|
16
|
+
ActiveRecord::ConnectionAdapters::OracleEnhanced::SchemaDumper.prepend Scenic::SchemaDumper
|
17
|
+
end
|
18
|
+
end
|
19
|
+
if Scenic::Adapters::Oracle.uses_oracle_adapter?
|
20
|
+
require "active_record/connection_adapters/oracle_adapter"
|
21
|
+
|
22
|
+
ActiveRecord::ConnectionAdapters::Oracle::SchemaDumper.prepend Scenic::SchemaDumper
|
15
23
|
end
|
16
24
|
end
|
17
25
|
end
|
@@ -9,6 +9,8 @@ require "tsortable_hash"
|
|
9
9
|
module Scenic
|
10
10
|
module Adapters
|
11
11
|
class Oracle
|
12
|
+
class SideBySideNotSupportedError < StandardError; end
|
13
|
+
|
12
14
|
def initialize(connectable = ActiveRecord::Base)
|
13
15
|
@connectable = connectable
|
14
16
|
end
|
@@ -38,10 +40,14 @@ module Scenic
|
|
38
40
|
execute("create materialized view #{quote_table_name(name)} #{'build deferred' if no_data} as #{trimmed_definition(definition)}")
|
39
41
|
end
|
40
42
|
|
41
|
-
def update_materialized_view(name, definition, no_data: false)
|
42
|
-
|
43
|
-
|
44
|
-
|
43
|
+
def update_materialized_view(name, definition, no_data: false, side_by_side: false)
|
44
|
+
if side_by_side
|
45
|
+
raise SideBySideNotSupportedError.new("Renaming materialized view is not supported in Oracle")
|
46
|
+
else
|
47
|
+
IndexReapplication.new(connection: connection).on(name) do
|
48
|
+
drop_materialized_view(name)
|
49
|
+
create_materialized_view(name, definition, no_data: no_data)
|
50
|
+
end
|
45
51
|
end
|
46
52
|
end
|
47
53
|
|
@@ -67,6 +73,18 @@ module Scenic
|
|
67
73
|
delegate :connection, to: :@connectable
|
68
74
|
delegate :select_all, :select_value, :execute, :quote_table_name, to: :connection
|
69
75
|
|
76
|
+
def self.file_exists_in_load_path?(filename)
|
77
|
+
$LOAD_PATH.any? { |path| File.exist?(File.join(path, filename)) }
|
78
|
+
end
|
79
|
+
|
80
|
+
def self.uses_oracle_enhanced_adapter?
|
81
|
+
file_exists_in_load_path?("active_record/connection_adapters/oracle_enhanced_adapter.rb")
|
82
|
+
end
|
83
|
+
|
84
|
+
def self.uses_oracle_adapter?
|
85
|
+
file_exists_in_load_path?("active_record/connection_adapters/oracle_adapter.rb")
|
86
|
+
end
|
87
|
+
|
70
88
|
private
|
71
89
|
|
72
90
|
def view_dependencies
|
@@ -1,6 +1,9 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "active_record"
|
4
|
+
# Require tsort here before scenic to avoid:
|
5
|
+
# uninitialized constant Scenic::Adapters::Postgres::Views::TSortableHash::TSort
|
6
|
+
require "tsort"
|
4
7
|
require "scenic"
|
5
8
|
require "scenic/oracle_adapter/version"
|
6
9
|
require "scenic/adapters/oracle"
|
@@ -22,8 +22,7 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
23
23
|
spec.require_paths = ["lib"]
|
24
24
|
|
25
|
-
spec.add_dependency "scenic", "= 1.
|
26
|
-
spec.add_dependency "activerecord-oracle_enhanced-adapter", ">= 1.5.0"
|
25
|
+
spec.add_dependency "scenic", "= 1.9.0"
|
27
26
|
|
28
27
|
spec.add_development_dependency "bundler", "~> 2.0"
|
29
28
|
spec.add_development_dependency "rake", ">= 12.3.3"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: scenic-oracle_adapter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Dinger
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-07-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: scenic
|
@@ -16,28 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 1.
|
19
|
+
version: 1.9.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 1.
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: activerecord-oracle_enhanced-adapter
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - ">="
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: 1.5.0
|
34
|
-
type: :runtime
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - ">="
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: 1.5.0
|
26
|
+
version: 1.9.0
|
41
27
|
- !ruby/object:Gem::Dependency
|
42
28
|
name: bundler
|
43
29
|
requirement: !ruby/object:Gem::Requirement
|