class Sequel::Mysql2::Database
Public Instance Methods
connect(server)
click to toggle source
Connect to the database. In addition to the usual database options, the following options have effect:
-
:auto_is_null - Set to true to use MySQL default behavior of having a filter for an autoincrement column equals NULL to return the last inserted row.
-
:charset - Same as :encoding (:encoding takes precendence)
-
:encoding - Set all the related character sets for this connection (connection, client, database, server, and results).
The options hash is also passed to mysql2, and can include mysql2 options such as :local_infile.
# File lib/sequel/em_mysql2.rb, line 18 def connect(server) opts = server_opts(server) opts[:host] ||= 'localhost' opts[:username] ||= opts.delete(:user) opts[:flags] ||= 0 opts[:flags] |= ::Mysql2::EM::Client::FOUND_ROWS if ::Mysql2::EM::Client.const_defined?(:FOUND_ROWS) conn = ::Mysql2::EM::Client.new(opts) conn.query_options.merge!(:symbolize_keys=>true, :cache_rows=>false) sqls = mysql_connection_setting_sqls # Set encoding a slightly different way after connecting, # in case the READ_DEFAULT_GROUP overrode the provided encoding. # Doesn't work across implicit reconnects, but Sequel doesn't turn on # that feature. if encoding = opts[:encoding] || opts[:charset] sqls.unshift("SET NAMES #{conn.escape(encoding.to_s)}") end sqls.each{|sql| log_yield(sql){conn.query(sql)}} add_prepared_statements_cache(conn) conn end