Communard
Communard adds some conventions from ActiveRecord to Sequel.
Sequel doesn't provide the exact same functionality as ActiveRecord. Communard doesn't try to make Sequel quack like ActiveRecord, it just tries to help with some (not all) setup.
Installation
Add this line to your application's Gemfile:
gem 'communard'
And then execute:
$ bundle
Or install it yourself as:
$ gem install communard
Usage
Rake integration
To add most Rake tasks, add this to your Rakefile
or to lib/tasks/communard.rake
:
require "communard/rake"
namespace :db do
Communard::Rake.add_tasks
end
This will add the most used rake tasks, like db:create
, db:migrate
, and db:setup
.
To see them all:
$ rake -T db
Communard::Rake.add_tasks
accepts the same configuration options as
Sequel.connect
. It doesn't immediately make a connection, only when needed.
The default connection string is ENV["DATABASE_URL"]
, so if you use that,
there is no need to configure anything.
Other configuration options, can be set via a block:
namespace :db do
Communard::Rake.add_tasks do |config|
# Change where the application is located (default: db)
config.db_path = File.join(Dir.pwd, "db")
# Automatically generate schema (default: false)
config.dump_after_migrating = false
# Dump types in native format (default) or Ruby (more portable)
config.same_db = true
# Add a logger
config.logger = Logger.new("log/migrations.log")
end
end
Example with using config/database.yml
:
namespace :db do
environment = ENV["RAILS_ENV"] || "development"
all_config = YAML.load_file("config/database.yml")
Communard::Rake.add_tasks(config.fetch(environment))
end
Note about test environment: Communard doesn't try to create a test database
like ActiveRecord does. The only rake task that attempts to do that is
rake db:test:prepare
. It respawns rake with different environment variables
set. Your mileage may vary.
Migrations
To generate a migration:
$ communard migration create_posts
Communard doesn't support more arguments, like the Rails generator does. You'll have to edit the generated migration file yourself.
Communard supports both timestamps and integer versions. It automatically
detects which type you have. If you have no migrations yet and want to use
timestamps, add --timestamps
. Read more about how to choose in the
Sequel docs.
Contributing
- Fork it ( https://github.com/iain/communard/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request