- Inheritance
- < ActiveRecord::ConnectionAdapters::AbstractAdapter < Object
The MySQL adapter will work with both Ruby/MySQL, which is a Ruby-based MySQL adapter that comes bundled with Active Record, and with the faster C-based MySQL/Ruby adapter (available both as a gem and from www.tmtm.org/en/mysql/ruby/).
Options:
- :host - Defaults to "localhost".
- :port - Defaults to 3306.
- :socket - Defaults to "/tmp/mysql.sock".
- :username - Defaults to "root"
- :password - Defaults to nothing.
- :database - The name of the database. No default, must be provided.
- :encoding - (Optional) Sets the client encoding by executing "SET NAMES <encoding>" after connection.
- :reconnect - Defaults to false (See MySQL documentation: dev.mysql.com/doc/refman/5.0/en/auto-reconnect.html).
- :sslca - Necessary to use MySQL with an SSL connection.
- :sslkey - Necessary to use MySQL with an SSL connection.
- :sslcert - Necessary to use MySQL with an SSL connection.
- :sslcapath - Necessary to use MySQL with an SSL connection.
- :sslcipher - Necessary to use MySQL with an SSL connection.
Constants
Name | Description | |
---|---|---|
ADAPTER_NAME | = 'MySQL'.freeze | |
LOST_CONNECTION_ERROR_MESSAGES | = [ "Server shutdown in progress", "Broken pipe", "Lost connection to MySQL server during query", "MySQL server has gone away" ] | |
NATIVE_DATABASE_TYPES | = { :primary_key => "int(11) DEFAULT NULL auto_increment PRIMARY KEY".freeze, :string => { :name => "varchar", :limit => 255 }, :text => { :name => "text" }, :integer => { :name => "int", :limit => 4 }, :float => { :name => "float" }, :decimal => { :name => "decimal" }, :datetime => { :name => "datetime" }, :timestamp => { :name => "datetime" }, :time => { :name => "time" }, :date => { :name => "date" }, :binary => { :name => "blob" }, :boolean => { :name => "tinyint", :limit => 1 } | |
QUOTED_FALSE | = '1'.freeze, '0'.freeze |
Methods
Class
Visibility | Signature |
---|---|
public | new (connection, logger, connection_options, config) |
Instance
Visibility | Signature |
---|---|
public | active? () |
public | case_sensitive_equality_operator () |
public | change_column_null (table_name, column_name, null, default = nil) |
public | charset () |
public | collation () |
public | create_database (name, options = {}) |
public | create_savepoint () |
public | current_database () |
public | disconnect! () |
public | drop_table (table_name, options = {}) |
public | limited_update_conditions (where_sql, quoted_table_name, quoted_primary_key) |
public | quote (value, column = nil) |
public | quoted_false () |
public | quoted_true () |
public | reconnect! () |
public | release_savepoint () |
public | rename_table (table_name, new_name) |
public | reset! () |
public | rollback_to_savepoint () |
public | select_rows (sql, name = nil) |
public | show_variable (name) |
public | type_to_sql (type, limit = nil, precision = nil, scale = nil) |
Class Method Detail
new(connection, logger, connection_options, config)
Instance Method Detail
active?()
CONNECTION MANAGEMENT ====================================
case_sensitive_equality_operator()
change_column_null(table_name, column_name, null, default = nil)
charset()
Returns the database character set.
collation()
Returns the database collation strategy.
create_database(name, options = {})
Create a new MySQL database with optional :charset and :collation. Charset defaults to utf8.
Example:
create_database 'charset_test', :charset => 'latin1', :collation => 'latin1_bin' create_database 'matt_development' create_database 'matt_development', :charset => :big5
create_savepoint()
current_database()
disconnect!()
drop_table(table_name, options = {})
limited_update_conditions(where_sql, quoted_table_name, quoted_primary_key)
quote(value, column = nil)
QUOTING ==================================================
quoted_false()
quoted_true()
reconnect!()
release_savepoint()
rename_table(table_name, new_name)
reset!()
rollback_to_savepoint()
select_rows(sql, name = nil)
DATABASE STATEMENTS ======================================
show_variable(name)
SHOW VARIABLES LIKE ‘name‘
type_to_sql(type, limit = nil, precision = nil, scale = nil)
Maps logical Rails types to MySQL-specific data types.