Class: ArJdbc::Tasks::OracleDatabaseTasks
Instance Attribute Summary
#configuration
Class Method Summary
collapse
Instance Method Summary
collapse
#charset, #collation, #expand_path, #initialize
Class Method Details
.load_enhanced_structure_dump ⇒ Object
51
52
53
54
55
56
57
58
|
# File 'lib/arjdbc/tasks/oracle_database_tasks.rb', line 51
def self.load_enhanced_structure_dump
unless defined? ActiveRecord::ConnectionAdapters::OracleEnhancedAdapter
ActiveRecord::ConnectionAdapters.module_eval do
const_set :OracleEnhancedAdapter, ActiveRecord::ConnectionAdapters::OracleAdapter
end
end
require 'arjdbc/tasks/oracle/enhanced_structure_dump'
end
|
Instance Method Details
#create ⇒ Object
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
# File 'lib/arjdbc/tasks/oracle_database_tasks.rb', line 7
def create
print "Please provide the SYSTEM password for your oracle installation\n>"
system_password = $stdin.gets.strip
establish_connection(config.merge('username' => 'SYSTEM', 'password' => system_password))
begin
connection.execute "CREATE USER #{config['username']} IDENTIFIED BY #{config['password']}"
rescue => e
if e.message =~ /ORA-01920/
connection.execute "ALTER USER #{config['username']} IDENTIFIED BY #{config['password']}"
else
raise e
end
end
connection.execute "GRANT unlimited tablespace TO #{config['username']}"
connection.execute "GRANT create session TO #{config['username']}"
connection.execute "GRANT create table TO #{config['username']}"
connection.execute "GRANT create sequence TO #{config['username']}"
end
|
#drop ⇒ Object
26
27
28
29
30
|
# File 'lib/arjdbc/tasks/oracle_database_tasks.rb', line 26
def drop
self.class.load_enhanced_structure_dump
establish_connection(config)
connection.execute_structure_dump(connection.full_drop)
end
|
#purge ⇒ Object
32
33
34
35
36
37
|
# File 'lib/arjdbc/tasks/oracle_database_tasks.rb', line 32
def purge
self.class.load_enhanced_structure_dump
establish_connection(:test)
connection.execute_structure_dump(connection.full_drop)
connection.execute("PURGE RECYCLEBIN") rescue nil
end
|
#structure_dump(filename) ⇒ Object
39
40
41
42
43
|
# File 'lib/arjdbc/tasks/oracle_database_tasks.rb', line 39
def structure_dump(filename)
self.class.load_enhanced_structure_dump
establish_connection(config)
File.open(filename, "w:utf-8") { |f| f << connection.structure_dump }
end
|
#structure_load(filename) ⇒ Object
45
46
47
48
49
|
# File 'lib/arjdbc/tasks/oracle_database_tasks.rb', line 45
def structure_load(filename)
self.class.load_enhanced_structure_dump
establish_connection(config)
connection.execute_structure_dump(File.read(filename))
end
|