example/application/tasks/db.rake
namespace :db do
desc 'Performs migration up to latest migration available'
task :migrate do
Sequel.extension :migration, :core_extensions
Sequel::Migrator.run(DB, 'application/db/migrations')
end
desc 'Generates a new timestamped Sequel migration'
task :migration, :name do |_, args|
if args[:name].nil?
puts 'Please specify a name for your migration (e.g. rake generate:migration[add_user_table])'
exit false
end
timestamp = Time.now.utc.strftime('%Y%m%d%H%M%S')
filename = File.join('application/db/migrations', "#{timestamp}_#{args[:name]}.rb")
require 'fileutils'
FileUtils.cp_r('application/db/migrations/migration_template.rb', filename)
puts "Created the migration #{filename}"
end
desc 'Drop all database tables and re-run migrations'
task :reset do
DB.tables.each { |table| DB.drop_table(table.to_sym) }
Rake::Task['db:migrate'].execute
end
end