Skip to content

Instantly share code, notes, and snippets.

@mrjman
Forked from kalmbach/gist:4471560
Last active August 29, 2015 14:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mrjman/7afaf0e20d8768782c82 to your computer and use it in GitHub Desktop.
Save mrjman/7afaf0e20d8768782c82 to your computer and use it in GitHub Desktop.
Rake migration tasks for Sequel
namespace :db do
require "sequel"
Sequel.extension :migration
DB = Sequel.connect(ENV['DATABASE_URL'])
desc "Prints current schema version"
task :version do
version = if DB.tables.include?(:schema_info)
DB[:schema_info].first[:version]
end || 0
puts "Schema Version: #{version}"
end
desc "Perform migration up to latest migration available"
task :migrate do
Sequel::Migrator.run(DB, "migrations")
Rake::Task['db:version'].execute
end
desc "Perform rollback to specified target or full rollback as default"
task :rollback, :target do |t, args|
args.with_defaults(:target => 0)
Sequel::Migrator.run(DB, "migrations", :target => args[:target].to_i)
Rake::Task['db:version'].execute
end
desc "Perform migration reset (full rollback and migration)"
task :reset do
Sequel::Migrator.run(DB, "migrations", :target => 0)
Sequel::Migrator.run(DB, "migrations")
Rake::Task['db:version'].execute
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment