Skip to content
Ruby C Shell
Find file


SQLite3/Ruby Interface


This module allows Ruby programs to interface with the SQLite3 database engine ( You must have the SQLite engine installed in order to build this module.

Note that this module is NOT compatible with SQLite 2.x.


require "sqlite3"

# Open a database
db = "test.db"

# Create a database
rows = db.execute <<-SQL
  create table numbers (
    name varchar(30),
    val int

# Execute a few inserts
  "one" => 1,
  "two" => 2,
}.each do |pair|
  db.execute "insert into numbers values ( ?, ? )", pair

# Find a few rows
db.execute( "select * from numbers" ) do |row|
  p row

Compilation and Installation

Install SQLite3, enabling option SQLITE_ENABLE_COLUMN_METADATA (see for details).

Then do the following:

ruby setup.rb config
ruby setup.rb setup
ruby setup.rb install

Alternatively, you can download and install the RubyGem package for SQLite3/Ruby (you must have RubyGems and SQLite3 installed, first):

gem install sqlite3-ruby

If you have sqlite3 installed in a non-standard location, you can specify the location of the include and lib files by doing:

gem install sqlite3-ruby -- --with-sqlite3-include=/opt/local/include \


OMG! Something has gone wrong! Where do I get help?

The best place to get help is from the sqlite3-ruby mailing list which can be found here:


I've found a bug! Where do I file it?

Uh oh. After contacting the mailing list, you've found that you've actually discovered a bug. You can file the bug at the github issues page which can be found here:



For help figuring out the SQLite3/Ruby interface, check out the FAQ. It includes examples of usage. If you have any questions that you feel should be address in the FAQ, please send them to

Source Code

The source repository is accessible via git:

git clone git://

Contact Information

The project page is There, you can find links to mailing lists and forums that you can use to discuss this library. Additionally, there are trackers for submitting bugs and feature requests. Feel free to use them!

Something went wrong with that request. Please try again.