Module: DBGeni::Connector
- Defined in:
- lib/dbgeni/connectors/mysql.rb,
lib/dbgeni/connectors/oracle.rb,
lib/dbgeni/connectors/sqlite.rb,
lib/dbgeni/connectors/sybase.rb,
lib/dbgeni/connectors/connector.rb more...
Defined Under Namespace
Classes: Mysql, Oracle, Sqlite, Sybase
Class Method Summary collapse
Class Method Details
permalink .initialize(config) ⇒ Object
[View source]
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 |
# File 'lib/dbgeni/connectors/connector.rb', line 5 def self.initialize(config) required_class = setup(config.db_type) conn = nil begin required_method = required_class.method("connect") rescue NameError raise DBGeni::InvalidConnectorForDBType, config.db_type end if config.db_type == 'sqlite' or (config.db_type == 'oracle' and RUBY_PLATFORM != 'java') # don't need a host or port here, so make this a seperate call block conn = required_method.call(config.env.username, # SQLITE doesn't need a password, so prevent asking for it # or it may be promoted for config.db_type == 'sqlite' ? '' : config.env.password, config.env.database) else conn = required_method.call(config.env.username, config.env.password, config.env.database, config.env.hostname, config.env.port) end if config.db_type == 'oracle' if config.env.install_schema if config.env.username != config.env.install_schema conn.execute("alter session set current_schema=#{config.env.install_schema}") end end end conn end |