pmacs-activerecord-oracle_enhanced-adapter 1.4.2.rc1 → 1.5.5.1
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 +7 -0
- data/Gemfile +11 -40
- data/History.md +170 -0
- data/README.md +61 -5
- data/Rakefile +1 -0
- data/VERSION +1 -1
- data/lib/active_record/connection_adapters/oracle_enhanced_adapter.rb +330 -161
- data/lib/active_record/connection_adapters/oracle_enhanced_column.rb +48 -8
- data/lib/active_record/connection_adapters/oracle_enhanced_column_dumper.rb +77 -0
- data/lib/active_record/connection_adapters/oracle_enhanced_connection.rb +8 -24
- data/lib/active_record/connection_adapters/oracle_enhanced_context_index.rb +4 -13
- data/lib/active_record/connection_adapters/oracle_enhanced_database_tasks.rb +61 -0
- data/lib/active_record/connection_adapters/oracle_enhanced_dirty.rb +13 -12
- data/lib/active_record/connection_adapters/oracle_enhanced_jdbc_connection.rb +42 -19
- data/lib/active_record/connection_adapters/oracle_enhanced_oci_connection.rb +28 -74
- data/lib/active_record/connection_adapters/oracle_enhanced_procedures.rb +165 -231
- data/lib/active_record/connection_adapters/oracle_enhanced_schema_creation.rb +89 -0
- data/lib/active_record/connection_adapters/oracle_enhanced_schema_definitions.rb +16 -24
- data/lib/active_record/connection_adapters/oracle_enhanced_schema_dumper.rb +29 -38
- data/lib/active_record/connection_adapters/oracle_enhanced_schema_statements.rb +93 -42
- data/lib/active_record/connection_adapters/oracle_enhanced_schema_statements_ext.rb +5 -3
- data/lib/active_record/connection_adapters/oracle_enhanced_structure_dump.rb +7 -7
- data/lib/active_record/connection_adapters/oracle_enhanced_version.rb +1 -1
- data/lib/pmacs-activerecord-oracle_enhanced-adapter.rb +2 -2
- data/pmacs-activerecord-oracle_enhanced-adapter.gemspec +19 -17
- data/spec/active_record/connection_adapters/oracle_enhanced_adapter_spec.rb +35 -99
- data/spec/active_record/connection_adapters/oracle_enhanced_connection_spec.rb +17 -3
- data/spec/active_record/connection_adapters/oracle_enhanced_context_index_spec.rb +105 -98
- data/spec/active_record/connection_adapters/oracle_enhanced_data_types_spec.rb +74 -44
- data/spec/active_record/connection_adapters/oracle_enhanced_database_tasks_spec.rb +89 -0
- data/spec/active_record/connection_adapters/oracle_enhanced_dbms_output_spec.rb +3 -3
- data/spec/active_record/connection_adapters/oracle_enhanced_dirty_spec.rb +13 -2
- data/spec/active_record/connection_adapters/oracle_enhanced_procedures_spec.rb +11 -12
- data/spec/active_record/connection_adapters/oracle_enhanced_schema_dump_spec.rb +252 -60
- data/spec/active_record/connection_adapters/oracle_enhanced_schema_statements_spec.rb +170 -40
- data/spec/active_record/connection_adapters/oracle_enhanced_structure_dump_spec.rb +14 -8
- data/spec/spec_helper.rb +25 -54
- metadata +41 -72
- data/lib/active_record/connection_adapters/oracle_enhanced.rake +0 -105
- data/lib/active_record/connection_adapters/oracle_enhanced_activerecord_patches.rb +0 -41
- data/lib/active_record/connection_adapters/oracle_enhanced_base_ext.rb +0 -118
- data/lib/active_record/connection_adapters/oracle_enhanced_core_ext.rb +0 -25
- data/lib/active_record/connection_adapters/oracle_enhanced_tasks.rb +0 -17
- data/spec/active_record/connection_adapters/oracle_enhanced_core_ext_spec.rb +0 -19
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pmacs-activerecord-oracle_enhanced-adapter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
5
|
-
prerelease: 6
|
4
|
+
version: 1.5.5.1
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Charles Treatman
|
@@ -10,213 +9,186 @@ authors:
|
|
10
9
|
autorequire:
|
11
10
|
bindir: bin
|
12
11
|
cert_chain: []
|
13
|
-
date: 2013-
|
12
|
+
date: 2013-03-18 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: jeweler
|
17
16
|
requirement: !ruby/object:Gem::Requirement
|
18
|
-
none: false
|
19
17
|
requirements:
|
20
|
-
- - ~>
|
18
|
+
- - "~>"
|
21
19
|
- !ruby/object:Gem::Version
|
22
|
-
version: 1.
|
20
|
+
version: '1.8'
|
23
21
|
type: :development
|
24
22
|
prerelease: false
|
25
23
|
version_requirements: !ruby/object:Gem::Requirement
|
26
|
-
none: false
|
27
24
|
requirements:
|
28
|
-
- - ~>
|
25
|
+
- - "~>"
|
29
26
|
- !ruby/object:Gem::Version
|
30
|
-
version: 1.
|
27
|
+
version: '1.8'
|
31
28
|
- !ruby/object:Gem::Dependency
|
32
29
|
name: rspec
|
33
30
|
requirement: !ruby/object:Gem::Requirement
|
34
|
-
none: false
|
35
31
|
requirements:
|
36
|
-
- - ~>
|
32
|
+
- - "~>"
|
37
33
|
- !ruby/object:Gem::Version
|
38
34
|
version: '2.4'
|
39
35
|
type: :development
|
40
36
|
prerelease: false
|
41
37
|
version_requirements: !ruby/object:Gem::Requirement
|
42
|
-
none: false
|
43
38
|
requirements:
|
44
|
-
- - ~>
|
39
|
+
- - "~>"
|
45
40
|
- !ruby/object:Gem::Version
|
46
41
|
version: '2.4'
|
47
42
|
- !ruby/object:Gem::Dependency
|
48
43
|
name: rdoc
|
49
44
|
requirement: !ruby/object:Gem::Requirement
|
50
|
-
none: false
|
51
45
|
requirements:
|
52
|
-
- -
|
46
|
+
- - ">="
|
53
47
|
- !ruby/object:Gem::Version
|
54
48
|
version: '0'
|
55
49
|
type: :development
|
56
50
|
prerelease: false
|
57
51
|
version_requirements: !ruby/object:Gem::Requirement
|
58
|
-
none: false
|
59
52
|
requirements:
|
60
|
-
- -
|
53
|
+
- - ">="
|
61
54
|
- !ruby/object:Gem::Version
|
62
55
|
version: '0'
|
63
56
|
- !ruby/object:Gem::Dependency
|
64
57
|
name: activerecord
|
65
58
|
requirement: !ruby/object:Gem::Requirement
|
66
|
-
none: false
|
67
59
|
requirements:
|
68
|
-
- -
|
60
|
+
- - ">="
|
69
61
|
- !ruby/object:Gem::Version
|
70
62
|
version: '0'
|
71
63
|
type: :development
|
72
64
|
prerelease: false
|
73
65
|
version_requirements: !ruby/object:Gem::Requirement
|
74
|
-
none: false
|
75
66
|
requirements:
|
76
|
-
- -
|
67
|
+
- - ">="
|
77
68
|
- !ruby/object:Gem::Version
|
78
69
|
version: '0'
|
79
70
|
- !ruby/object:Gem::Dependency
|
80
71
|
name: activemodel
|
81
72
|
requirement: !ruby/object:Gem::Requirement
|
82
|
-
none: false
|
83
73
|
requirements:
|
84
|
-
- -
|
74
|
+
- - ">="
|
85
75
|
- !ruby/object:Gem::Version
|
86
76
|
version: '0'
|
87
77
|
type: :development
|
88
78
|
prerelease: false
|
89
79
|
version_requirements: !ruby/object:Gem::Requirement
|
90
|
-
none: false
|
91
80
|
requirements:
|
92
|
-
- -
|
81
|
+
- - ">="
|
93
82
|
- !ruby/object:Gem::Version
|
94
83
|
version: '0'
|
95
84
|
- !ruby/object:Gem::Dependency
|
96
85
|
name: activesupport
|
97
86
|
requirement: !ruby/object:Gem::Requirement
|
98
|
-
none: false
|
99
87
|
requirements:
|
100
|
-
- -
|
88
|
+
- - ">="
|
101
89
|
- !ruby/object:Gem::Version
|
102
90
|
version: '0'
|
103
91
|
type: :development
|
104
92
|
prerelease: false
|
105
93
|
version_requirements: !ruby/object:Gem::Requirement
|
106
|
-
none: false
|
107
94
|
requirements:
|
108
|
-
- -
|
95
|
+
- - ">="
|
109
96
|
- !ruby/object:Gem::Version
|
110
97
|
version: '0'
|
111
98
|
- !ruby/object:Gem::Dependency
|
112
99
|
name: actionpack
|
113
100
|
requirement: !ruby/object:Gem::Requirement
|
114
|
-
none: false
|
115
101
|
requirements:
|
116
|
-
- -
|
102
|
+
- - ">="
|
117
103
|
- !ruby/object:Gem::Version
|
118
104
|
version: '0'
|
119
105
|
type: :development
|
120
106
|
prerelease: false
|
121
107
|
version_requirements: !ruby/object:Gem::Requirement
|
122
|
-
none: false
|
123
108
|
requirements:
|
124
|
-
- -
|
109
|
+
- - ">="
|
125
110
|
- !ruby/object:Gem::Version
|
126
111
|
version: '0'
|
127
112
|
- !ruby/object:Gem::Dependency
|
128
113
|
name: railties
|
129
114
|
requirement: !ruby/object:Gem::Requirement
|
130
|
-
none: false
|
131
115
|
requirements:
|
132
|
-
- -
|
116
|
+
- - ">="
|
133
117
|
- !ruby/object:Gem::Version
|
134
118
|
version: '0'
|
135
119
|
type: :development
|
136
120
|
prerelease: false
|
137
121
|
version_requirements: !ruby/object:Gem::Requirement
|
138
|
-
none: false
|
139
122
|
requirements:
|
140
|
-
- -
|
123
|
+
- - ">="
|
141
124
|
- !ruby/object:Gem::Version
|
142
125
|
version: '0'
|
143
126
|
- !ruby/object:Gem::Dependency
|
144
127
|
name: arel
|
145
128
|
requirement: !ruby/object:Gem::Requirement
|
146
|
-
none: false
|
147
129
|
requirements:
|
148
|
-
- -
|
130
|
+
- - ">="
|
149
131
|
- !ruby/object:Gem::Version
|
150
132
|
version: '0'
|
151
133
|
type: :development
|
152
134
|
prerelease: false
|
153
135
|
version_requirements: !ruby/object:Gem::Requirement
|
154
|
-
none: false
|
155
136
|
requirements:
|
156
|
-
- -
|
137
|
+
- - ">="
|
157
138
|
- !ruby/object:Gem::Version
|
158
139
|
version: '0'
|
159
140
|
- !ruby/object:Gem::Dependency
|
160
141
|
name: journey
|
161
142
|
requirement: !ruby/object:Gem::Requirement
|
162
|
-
none: false
|
163
143
|
requirements:
|
164
|
-
- -
|
144
|
+
- - ">="
|
165
145
|
- !ruby/object:Gem::Version
|
166
146
|
version: '0'
|
167
147
|
type: :development
|
168
148
|
prerelease: false
|
169
149
|
version_requirements: !ruby/object:Gem::Requirement
|
170
|
-
none: false
|
171
150
|
requirements:
|
172
|
-
- -
|
151
|
+
- - ">="
|
173
152
|
- !ruby/object:Gem::Version
|
174
153
|
version: '0'
|
175
154
|
- !ruby/object:Gem::Dependency
|
176
155
|
name: ruby-plsql
|
177
156
|
requirement: !ruby/object:Gem::Requirement
|
178
|
-
none: false
|
179
157
|
requirements:
|
180
|
-
- -
|
158
|
+
- - ">="
|
181
159
|
- !ruby/object:Gem::Version
|
182
160
|
version: 0.4.4
|
183
161
|
type: :development
|
184
162
|
prerelease: false
|
185
163
|
version_requirements: !ruby/object:Gem::Requirement
|
186
|
-
none: false
|
187
164
|
requirements:
|
188
|
-
- -
|
165
|
+
- - ">="
|
189
166
|
- !ruby/object:Gem::Version
|
190
167
|
version: 0.4.4
|
191
168
|
- !ruby/object:Gem::Dependency
|
192
169
|
name: ruby-oci8
|
193
170
|
requirement: !ruby/object:Gem::Requirement
|
194
|
-
none: false
|
195
171
|
requirements:
|
196
|
-
- -
|
172
|
+
- - ">="
|
197
173
|
- !ruby/object:Gem::Version
|
198
174
|
version: 2.0.4
|
199
175
|
type: :development
|
200
176
|
prerelease: false
|
201
177
|
version_requirements: !ruby/object:Gem::Requirement
|
202
|
-
none: false
|
203
178
|
requirements:
|
204
|
-
- -
|
179
|
+
- - ">="
|
205
180
|
- !ruby/object:Gem::Version
|
206
181
|
version: 2.0.4
|
207
|
-
description:
|
208
|
-
methods for working with new and legacy Oracle databases.
|
209
|
-
|
182
|
+
description: |
|
183
|
+
Oracle "enhanced" ActiveRecord adapter contains useful additional methods for working with new and legacy Oracle databases.
|
210
184
|
This adapter is superset of original ActiveRecord Oracle adapter.
|
211
|
-
|
212
|
-
'
|
213
185
|
email: charles.treatman@gmail.com
|
214
186
|
executables: []
|
215
187
|
extensions: []
|
216
188
|
extra_rdoc_files:
|
217
189
|
- README.md
|
218
190
|
files:
|
219
|
-
- .rspec
|
191
|
+
- ".rspec"
|
220
192
|
- Gemfile
|
221
193
|
- History.md
|
222
194
|
- License.txt
|
@@ -225,34 +197,32 @@ files:
|
|
225
197
|
- Rakefile
|
226
198
|
- VERSION
|
227
199
|
- lib/active_record/connection_adapters/emulation/oracle_adapter.rb
|
228
|
-
- lib/active_record/connection_adapters/oracle_enhanced.rake
|
229
|
-
- lib/active_record/connection_adapters/oracle_enhanced_activerecord_patches.rb
|
230
200
|
- lib/active_record/connection_adapters/oracle_enhanced_adapter.rb
|
231
|
-
- lib/active_record/connection_adapters/oracle_enhanced_base_ext.rb
|
232
201
|
- lib/active_record/connection_adapters/oracle_enhanced_column.rb
|
202
|
+
- lib/active_record/connection_adapters/oracle_enhanced_column_dumper.rb
|
233
203
|
- lib/active_record/connection_adapters/oracle_enhanced_connection.rb
|
234
204
|
- lib/active_record/connection_adapters/oracle_enhanced_context_index.rb
|
235
|
-
- lib/active_record/connection_adapters/oracle_enhanced_core_ext.rb
|
236
205
|
- lib/active_record/connection_adapters/oracle_enhanced_cpk.rb
|
206
|
+
- lib/active_record/connection_adapters/oracle_enhanced_database_tasks.rb
|
237
207
|
- lib/active_record/connection_adapters/oracle_enhanced_dirty.rb
|
238
208
|
- lib/active_record/connection_adapters/oracle_enhanced_jdbc_connection.rb
|
239
209
|
- lib/active_record/connection_adapters/oracle_enhanced_oci_connection.rb
|
240
210
|
- lib/active_record/connection_adapters/oracle_enhanced_procedures.rb
|
211
|
+
- lib/active_record/connection_adapters/oracle_enhanced_schema_creation.rb
|
241
212
|
- lib/active_record/connection_adapters/oracle_enhanced_schema_definitions.rb
|
242
213
|
- lib/active_record/connection_adapters/oracle_enhanced_schema_dumper.rb
|
243
214
|
- lib/active_record/connection_adapters/oracle_enhanced_schema_statements.rb
|
244
215
|
- lib/active_record/connection_adapters/oracle_enhanced_schema_statements_ext.rb
|
245
216
|
- lib/active_record/connection_adapters/oracle_enhanced_structure_dump.rb
|
246
|
-
- lib/active_record/connection_adapters/oracle_enhanced_tasks.rb
|
247
217
|
- lib/active_record/connection_adapters/oracle_enhanced_version.rb
|
248
218
|
- lib/pmacs-activerecord-oracle_enhanced-adapter.rb
|
249
219
|
- pmacs-activerecord-oracle_enhanced-adapter.gemspec
|
250
220
|
- spec/active_record/connection_adapters/oracle_enhanced_adapter_spec.rb
|
251
221
|
- spec/active_record/connection_adapters/oracle_enhanced_connection_spec.rb
|
252
222
|
- spec/active_record/connection_adapters/oracle_enhanced_context_index_spec.rb
|
253
|
-
- spec/active_record/connection_adapters/oracle_enhanced_core_ext_spec.rb
|
254
223
|
- spec/active_record/connection_adapters/oracle_enhanced_cpk_spec.rb
|
255
224
|
- spec/active_record/connection_adapters/oracle_enhanced_data_types_spec.rb
|
225
|
+
- spec/active_record/connection_adapters/oracle_enhanced_database_tasks_spec.rb
|
256
226
|
- spec/active_record/connection_adapters/oracle_enhanced_dbms_output_spec.rb
|
257
227
|
- spec/active_record/connection_adapters/oracle_enhanced_dirty_spec.rb
|
258
228
|
- spec/active_record/connection_adapters/oracle_enhanced_emulate_oracle_adapter_spec.rb
|
@@ -263,25 +233,24 @@ files:
|
|
263
233
|
- spec/spec_helper.rb
|
264
234
|
homepage: http://github.com/pmacs/oracle-enhanced
|
265
235
|
licenses: []
|
236
|
+
metadata: {}
|
266
237
|
post_install_message:
|
267
238
|
rdoc_options: []
|
268
239
|
require_paths:
|
269
240
|
- lib
|
270
241
|
required_ruby_version: !ruby/object:Gem::Requirement
|
271
|
-
none: false
|
272
242
|
requirements:
|
273
|
-
- -
|
243
|
+
- - ">="
|
274
244
|
- !ruby/object:Gem::Version
|
275
245
|
version: '0'
|
276
246
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
277
|
-
none: false
|
278
247
|
requirements:
|
279
|
-
- -
|
248
|
+
- - ">="
|
280
249
|
- !ruby/object:Gem::Version
|
281
|
-
version:
|
250
|
+
version: '0'
|
282
251
|
requirements: []
|
283
252
|
rubyforge_project:
|
284
|
-
rubygems_version:
|
253
|
+
rubygems_version: 2.2.2
|
285
254
|
signing_key:
|
286
255
|
specification_version: 3
|
287
256
|
summary: Oracle enhanced adapter for ActiveRecord
|
@@ -289,8 +258,8 @@ test_files:
|
|
289
258
|
- spec/active_record/connection_adapters/oracle_enhanced_adapter_spec.rb
|
290
259
|
- spec/active_record/connection_adapters/oracle_enhanced_connection_spec.rb
|
291
260
|
- spec/active_record/connection_adapters/oracle_enhanced_context_index_spec.rb
|
292
|
-
- spec/active_record/connection_adapters/oracle_enhanced_core_ext_spec.rb
|
293
261
|
- spec/active_record/connection_adapters/oracle_enhanced_cpk_spec.rb
|
262
|
+
- spec/active_record/connection_adapters/oracle_enhanced_database_tasks_spec.rb
|
294
263
|
- spec/active_record/connection_adapters/oracle_enhanced_data_types_spec.rb
|
295
264
|
- spec/active_record/connection_adapters/oracle_enhanced_dbms_output_spec.rb
|
296
265
|
- spec/active_record/connection_adapters/oracle_enhanced_dirty_spec.rb
|
@@ -1,105 +0,0 @@
|
|
1
|
-
# implementation idea taken from JDBC adapter
|
2
|
-
# added possibility to execute previously defined task (passed as argument to task block)
|
3
|
-
def redefine_task(*args, &block)
|
4
|
-
task_name = Hash === args.first ? args.first.keys[0] : args.first
|
5
|
-
existing_task = Rake.application.lookup task_name
|
6
|
-
existing_actions = nil
|
7
|
-
if existing_task
|
8
|
-
class << existing_task; public :instance_variable_set, :instance_variable_get; end
|
9
|
-
existing_task.instance_variable_set "@prerequisites", FileList[]
|
10
|
-
existing_actions = existing_task.instance_variable_get "@actions"
|
11
|
-
existing_task.instance_variable_set "@actions", []
|
12
|
-
end
|
13
|
-
task(*args) do
|
14
|
-
block.call(existing_actions)
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
# Creates database user with db:create
|
19
|
-
if defined?(create_database) == 'method'
|
20
|
-
def create_database_with_oracle_enhanced(config)
|
21
|
-
if config['adapter'] == 'oracle_enhanced'
|
22
|
-
print "Please provide the SYSTEM password for your oracle installation\n>"
|
23
|
-
system_password = $stdin.gets.strip
|
24
|
-
ActiveRecord::Base.establish_connection(config.merge('username' => 'SYSTEM', 'password' => system_password))
|
25
|
-
begin
|
26
|
-
ActiveRecord::Base.connection.execute "CREATE USER #{config['username']} IDENTIFIED BY #{config['password']}"
|
27
|
-
rescue => e
|
28
|
-
if e.message =~ /ORA-01920/ # user name conflicts with another user or role name
|
29
|
-
ActiveRecord::Base.connection.execute "ALTER USER #{config['username']} IDENTIFIED BY #{config['password']}"
|
30
|
-
else
|
31
|
-
raise e
|
32
|
-
end
|
33
|
-
end
|
34
|
-
ActiveRecord::Base.connection.execute "GRANT unlimited tablespace TO #{config['username']}"
|
35
|
-
ActiveRecord::Base.connection.execute "GRANT create session TO #{config['username']}"
|
36
|
-
ActiveRecord::Base.connection.execute "GRANT create table TO #{config['username']}"
|
37
|
-
ActiveRecord::Base.connection.execute "GRANT create sequence TO #{config['username']}"
|
38
|
-
else
|
39
|
-
create_database_without_oracle_enhanced(config)
|
40
|
-
end
|
41
|
-
end
|
42
|
-
alias :create_database_without_oracle_enhanced :create_database
|
43
|
-
alias :create_database :create_database_with_oracle_enhanced
|
44
|
-
end
|
45
|
-
|
46
|
-
# Drops database user with db:drop
|
47
|
-
if defined?(drop_database) == 'method'
|
48
|
-
def drop_database_with_oracle_enhanced(config)
|
49
|
-
if config['adapter'] == 'oracle_enhanced'
|
50
|
-
ActiveRecord::Base.establish_connection(config)
|
51
|
-
ActiveRecord::Base.connection.execute_structure_dump(ActiveRecord::Base.connection.full_drop)
|
52
|
-
else
|
53
|
-
drop_database_without_oracle_enhanced(config)
|
54
|
-
end
|
55
|
-
end
|
56
|
-
alias :drop_database_without_oracle_enhanced :drop_database
|
57
|
-
alias :drop_database :drop_database_with_oracle_enhanced
|
58
|
-
end
|
59
|
-
|
60
|
-
namespace :db do
|
61
|
-
|
62
|
-
namespace :structure do
|
63
|
-
redefine_task :dump => :environment do |existing_actions|
|
64
|
-
abcs = ActiveRecord::Base.configurations
|
65
|
-
rails_env = defined?(Rails.env) ? Rails.env : RAILS_ENV
|
66
|
-
if abcs[rails_env]['adapter'] == 'oracle_enhanced'
|
67
|
-
ActiveRecord::Base.establish_connection(abcs[rails_env])
|
68
|
-
File.open("db/#{rails_env}_structure.sql", "w+") { |f| f << ActiveRecord::Base.connection.structure_dump }
|
69
|
-
if ActiveRecord::Base.connection.supports_migrations?
|
70
|
-
File.open("db/#{rails_env}_structure.sql", "a") { |f| f << ActiveRecord::Base.connection.dump_schema_information }
|
71
|
-
end
|
72
|
-
if abcs[rails_env]['structure_dump'] == "db_stored_code"
|
73
|
-
File.open("db/#{rails_env}_structure.sql", "a") { |f| f << ActiveRecord::Base.connection.structure_dump_db_stored_code }
|
74
|
-
end
|
75
|
-
else
|
76
|
-
Array(existing_actions).each{|action| action.call}
|
77
|
-
end
|
78
|
-
end
|
79
|
-
end
|
80
|
-
|
81
|
-
namespace :test do
|
82
|
-
redefine_task :clone_structure => [ "db:structure:dump", "db:test:purge" ] do |existing_actions|
|
83
|
-
abcs = ActiveRecord::Base.configurations
|
84
|
-
rails_env = defined?(Rails.env) ? Rails.env : RAILS_ENV
|
85
|
-
if abcs[rails_env]['adapter'] == 'oracle_enhanced' && abcs['test']['adapter'] == 'oracle_enhanced'
|
86
|
-
ActiveRecord::Base.establish_connection(:test)
|
87
|
-
ActiveRecord::Base.connection.execute_structure_dump(File.read("db/#{rails_env}_structure.sql"))
|
88
|
-
else
|
89
|
-
Array(existing_actions).each{|action| action.call}
|
90
|
-
end
|
91
|
-
end
|
92
|
-
|
93
|
-
redefine_task :purge => :environment do |existing_actions|
|
94
|
-
abcs = ActiveRecord::Base.configurations
|
95
|
-
if abcs['test']['adapter'] == 'oracle_enhanced'
|
96
|
-
ActiveRecord::Base.establish_connection(:test)
|
97
|
-
ActiveRecord::Base.connection.execute_structure_dump(ActiveRecord::Base.connection.full_drop)
|
98
|
-
ActiveRecord::Base.connection.execute("PURGE RECYCLEBIN") rescue nil
|
99
|
-
else
|
100
|
-
Array(existing_actions).each{|action| action.call}
|
101
|
-
end
|
102
|
-
end
|
103
|
-
|
104
|
-
end
|
105
|
-
end
|
@@ -1,41 +0,0 @@
|
|
1
|
-
# ActiveRecord 2.3 patches
|
2
|
-
if ActiveRecord::VERSION::MAJOR == 2 && ActiveRecord::VERSION::MINOR == 3
|
3
|
-
require "active_record/associations"
|
4
|
-
|
5
|
-
ActiveRecord::Associations::ClassMethods.module_eval do
|
6
|
-
private
|
7
|
-
def tables_in_string(string)
|
8
|
-
return [] if string.blank?
|
9
|
-
if self.connection.adapter_name == "OracleEnhanced"
|
10
|
-
# always convert table names to downcase as in Oracle quoted table names are in uppercase
|
11
|
-
# ignore raw_sql_ that is used by Oracle adapter as alias for limit/offset subqueries
|
12
|
-
string.scan(/([a-zA-Z_][\.\w]+).?\./).flatten.map(&:downcase).uniq - ['raw_sql_']
|
13
|
-
else
|
14
|
-
string.scan(/([\.a-zA-Z_]+).?\./).flatten
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
ActiveRecord::Associations::ClassMethods::JoinDependency::JoinAssociation.class_eval do
|
20
|
-
protected
|
21
|
-
def aliased_table_name_for(name, suffix = nil)
|
22
|
-
# always downcase quoted table name as Oracle quoted table names are in uppercase
|
23
|
-
if !parent.table_joins.blank? && parent.table_joins.to_s.downcase =~ %r{join(\s+\w+)?\s+#{active_record.connection.quote_table_name(name).downcase}\son}
|
24
|
-
@join_dependency.table_aliases[name] += 1
|
25
|
-
end
|
26
|
-
|
27
|
-
unless @join_dependency.table_aliases[name].zero?
|
28
|
-
# if the table name has been used, then use an alias
|
29
|
-
name = active_record.connection.table_alias_for "#{pluralize(reflection.name)}_#{parent_table_name}#{suffix}"
|
30
|
-
table_index = @join_dependency.table_aliases[name]
|
31
|
-
@join_dependency.table_aliases[name] += 1
|
32
|
-
name = name[0..active_record.connection.table_alias_length-3] + "_#{table_index+1}" if table_index > 0
|
33
|
-
else
|
34
|
-
@join_dependency.table_aliases[name] += 1
|
35
|
-
end
|
36
|
-
|
37
|
-
name
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
end
|