aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/connections/native_oracle/connection.rb
blob: c8183dc0fb7ed2ac5f86b72ba0c97d1f98ad6c39 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# gem "rsim-activerecord-oracle_enhanced-adapter"
# gem "activerecord-oracle_enhanced-adapter", ">=1.2.1"
# uses local copy of oracle_enhanced adapter
$:.unshift("../../oracle-enhanced/lib")
require 'active_record/connection_adapters/oracle_enhanced_adapter'
# gem "activerecord-jdbc-adapter"
# require 'active_record/connection_adapters/jdbc_adapter'

# otherwise failed with silence_warnings method missing exception
require 'active_support/core_ext/kernel/reporting'

print "Using Oracle\n"
require_dependency 'models/course'
require 'logger'

# ActiveRecord::Base.logger = Logger.new STDOUT
# ActiveRecord::Base.logger.level = Logger::WARN
ActiveRecord::Base.logger = Logger.new("debug.log")

# Set these to your database connection strings
db = ENV['ARUNIT_DB_NAME'] = 'orcl'

ActiveRecord::Base.configurations = {
  'arunit' => {
    :adapter  => 'oracle_enhanced',
    :database => db,
    :host => "localhost", # used just by JRuby to construct JDBC connect string
    # :adapter => "jdbc",
    # :driver => "oracle.jdbc.driver.OracleDriver",
    # :url => "jdbc:oracle:thin:@localhost:1521:#{db}",
    :username => 'arunit',
    :password => 'arunit',
    :emulate_oracle_adapter => true
  },
  'arunit2' => {
    :adapter  => 'oracle_enhanced',
    :database => db,
    :host => "localhost", # used just by JRuby to construct JDBC connect string
    # :adapter => "jdbc",
    # :driver => "oracle.jdbc.driver.OracleDriver",
    # :url => "jdbc:oracle:thin:@localhost:1521:#{db}",
    :username => 'arunit2',
    :password => 'arunit2',
    :emulate_oracle_adapter => true
  }
}

ActiveRecord::Base.establish_connection 'arunit'
Course.establish_connection 'arunit2'

# ActiveRecord::Base.connection.execute %q{alter session set nls_date_format = 'YYYY-MM-DD HH24:MI:SS'}
# ActiveRecord::Base.connection.execute %q{alter session set nls_timestamp_format = 'YYYY-MM-DD HH24:MI:SS'} rescue nil

# for assert_queries test helper
ActiveRecord::Base.connection.class.class_eval do
  IGNORED_SELECT_SQL = [/^select .*nextval/i, /^SAVEPOINT/, /^ROLLBACK TO SAVEPOINT/, /^RELEASE SAVEPOINT/, /^\s*select .* from all_tab_columns/im]

  def select_with_query_record(sql, name = nil, return_column_names = false)
    $queries_executed ||= []
    $queries_executed << sql unless IGNORED_SELECT_SQL.any? { |r| sql =~ r }
    select_without_query_record(sql, name, return_column_names)
  end

  alias_method_chain :select, :query_record
end

# For JRuby Set default $KCODE to UTF8
$KCODE = "UTF8" if defined?(RUBY_ENGINE) && RUBY_ENGINE == 'jruby'