Skip to content

Instantly share code, notes, and snippets.

@ugisozols
Forked from kalmbach/gist:4471560
Last active August 29, 2015 14:06
Show Gist options
  • Save ugisozols/1e10f739c44b838714b6 to your computer and use it in GitHub Desktop.
Save ugisozols/1e10f739c44b838714b6 to your computer and use it in GitHub Desktop.
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