require_relative '../straight-server'
namespace :db do
task :environment do include StraightServer::Initializer ConfigDir.set! create_config_files read_config_file connect_to_db end desc "Migrates the database" task :migrate, [:step] => :environment do |t, args| target = args[:step] && (step = args[:step].to_i) > 0 ? current_migration_version + step : nil Sequel::Migrator.run(StraightServer.db_connection, MIGRATIONS_ROOT, target: target) dump_schema end desc "Rollbacks database migrations" task :rollback, [:step] => :environment do |t, args| target = args[:step] && (step = args[:step].to_i) > 0 ? current_migration_version - step : current_migration_version - 1 Sequel::Migrator.run(StraightServer.db_connection, MIGRATIONS_ROOT, target: target) dump_schema end def current_migration_version db = StraightServer.db_connection Sequel::Migrator.migrator_class(MIGRATIONS_ROOT).new(db, MIGRATIONS_ROOT, {}).current end def dump_schema StraightServer.db_connection.extension :schema_dumper open('db/schema.rb', 'w') do |f| f.puts StraightServer.db_connection.dump_schema_migration(same_db: false) end end
end