do_mysql

Description

A MySQL driver for DataObjects.

Features/Problems

This driver implements the DataObjects API for the MySQL relational database.

Synopsis

An example of usage:

# default user (root, no password); default port (3306)
DataObjects::Connection.new("mysql://host/database")
# specified user, specified port
DataObjects::Connection.new("mysql://user:pass@host:8888/database")

@connection = DataObjects::Connection.new("mysql://localhost/employees")
@reader = @connection.create_command('SELECT * FROM users').execute_reader
@reader.next!

In the future, the Connection constructor will be able to be passed either a DataObjects-style URL or JDBC style URL, when using do_mysql on JRuby. However, this feature is not currently working reliably and is a known issue.

Requirements

This driver is provided for the following platforms:

  • Ruby MRI (1.8.6/7), 1.9: tested on Linux, Mac OS X and Windows platforms.
  • JRuby 1.3.1 + (1.4+ recommended).
  • Rubinius (experimental).

Additionally you should have the following prerequisites:

  • data_objects gem
  • do_jdbc gem (shared library), if running on JRuby.

Install

To install the gem:

gem install do_mysql

If installing the MRI/1.9/Rubinius extension on OS X and you install a version of MySQL that was built for only a single architecture, you will need to set ARCHFLAGS appropriately:

sudo env ARCHFLAGS="-arch i386" gem install do_mysql

To compile and install from source:

  • Install rake-compiler: gem install rake-compiler.

  • For MRI/Rubinius extensions:

    • Install the gcc compiler. On OS X, you should install XCode tools. On Ubuntu, run apt-get install build-essential.
    • Install Ruby and MySQL.
    • Install the Ruby and MySQL development headers.
    • On Debian-Linux distributions, you can install the following packages with apt: ruby-dev libmysqlclient15-dev.
    • If you want to cross-compile for Windows:
    • Install MinGW:
      • On Debian-Linux distributions, you can install the following package with apt: mingw32.
      • On OS X, this can install the following package with MacPorts: i386-mingw32-gcc.
    • Run rake-compiler cross-ruby.
    • Run rake-compiler update-config.
    • Then, install this driver with (jruby -S) rake install.

For more information, see the MySQL driver wiki page: http://wiki.github.com/datamapper/do/mysql.

Developers

Follow the above installation instructions. Additionally, you'll need:

  • bacon gem for running specs.
  • YARD gem for generating documentation.

See the DataObjects wiki for more comprehensive information on installing and contributing to the JRuby-variant of this driver: http://wiki.github.com/datamapper/do/jruby.

To run specs:

rake spec

To run specs without compiling extensions first:

rake spec_no_compile

To run individual specs:

rake spec TEST=spec/connection_spec.rb

(Note that the rake task uses a TEST parameter, not SPEC. This is because the Rake::TestTask is used for executing the Bacon specs).

License

This code is licensed under an MIT (X11) License. Please see the accompanying LICENSE file.