sequel-rails

This gem provides the railtie that allows sequel to hook into rails3 and thus behave like a rails framework component. Just like activerecord does in rails, sequel-rails uses the railtie API to hook into rails. The two are actually hooked into rails almost identically.

The code for this gem was initially taken from the excellent dm-rails project.

Using sequel-rails

Using sequel with rails3 requires a couple minor changes.

First, add the following to your Gemfile:

gem 'sequel-rails'

… be sure to run “bundle install” if needed!

Secondly, you’ll need to require “sequel-rails/railtie” in your config/application.rb file, and not require activerecord. The top of your config/application.rb will probably look something like:

# require 'rails/all'

# Instead of 'rails/all', require these:
require "action_controller/railtie"
require "sequel-rails/railtie"
require "action_mailer/railtie"

After those changes, you should be good to go!

Available sequel specific rake tasks

To get a list of all available rake tasks in your rails3 app, issue the usual

vendor/bin/rake -T

Once you do that, you will see the following rake tasks among others. These are the ones that sequel-rails added for us.

...
vendor/bin/rake db:create                # Create the database(s) defined in config/database.yml for the current Rails.env - also creates the test database(s) if Rails.env.development?
vendor/bin/rake db:create:all            # Create all the local databases defined in config/database.yml
vendor/bin/rake db:drop                  # Drops the database(s) for the current Rails.env - also drops the test database(s) if Rails.env.development?
vendor/bin/rake db:drop:all              # Drop all the local databases defined in config/database.yml
vendor/bin/rake db:migrate               # Migrate the database to the latest version
vendor/bin/rake db:migrate:down[version] # Migrate down using migrations
vendor/bin/rake db:migrate:up[version]   # Migrate up using migrations
vendor/bin/rake db:seed                  # Load the seed data from db/seeds.rb
vendor/bin/rake db:sessions:clear        # Clear the sessions table for SequelStore
vendor/bin/rake db:sessions:create       # Creates the sessions table for SequelStore
vendor/bin/rake db:setup                 # Create the database, load the schema, and initialize with the seed data
...

Current Issues

  • There are bound to be a lot, but I’m not yet sure what they are

TODO (not necessarily in that order)

  • SPECS

  • README changes

  • Publish SQL issued by sequel to rails subscribers

Credits

The dm-rails team wrote most of this code, I just sequel-ized it.

Note on Patches/Pull Requests

  • Fork the project.

  • Make your feature addition or bug fix.

  • Add tests for it. This is important so I don’t break it in a future version unintentionally.

  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)

  • Send me a pull request. Bonus points for topic branches.

The sequel-rails team

  • Brasten Sager (brasten)

Copyright © 2010 The sequel-rails team. See LICENSE for details.